Web 密码传输
单向加密
MD5(不建议使用),SHA1(不建议使用),SHA256,SHA-512
前端将用户输入的密码加密,提交到后端保存数据库,数据库不保留真实密码。登录验证时,使用加密后字符串与数据库记录对比。
对称加密
加密和解密是使用同一个密钥,效率高,不安全
DES,3DES,AES,IDEA,RC4,RC5
非对称加密
RSA,DSA
前端使用公钥加密,后端使用私钥解密。后端可以通过私钥解密获取到真实密码。
RSA 非对称加密示例
前端使用公钥加密密码
|
|
后端使用私钥解密
|
|
1 2 3 4 5 6<!--hutool--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.5</version> </dependency>
其他
Base64
Base64 不属于加密,仅为编码转换
client_secret 和 client_id 的可用性
这种方式常用于固定的客户端(例如:系统后端、不需要特定用户登陆的Web端或C端等)
可通过 client_id 分辨请求来源,方便后续追溯和统计。
携带参数的方式
- 放在 url 里
http://127.0.0.1:8080/index.html?client_id=123&client_secret=abc
- 放在请求头里
|
|
- 加密后携带
使用自定义格式拼接client_secret 和 client_id,并对拼接后的字符串进行单向加密。加密后放在 url 里,或者以 token 的方式放到请求头里。