常用加密算法

  1. 各种加密算法对比
    5.1. 散列算法比较
名称安全性速度
SHA-1
MD5

5.2. 对称加密算法比较

名称密钥名称运行速度安全性资源消耗
DES56位较快
3DES112位或168位
AES128、192、256位

5.3. 非对称加密算法比较

名称成熟度安全性运算速度资源消耗
RSA
ECC

5.4. 对称算法与非对称加密算法
5.4.1. 对称算法
密钥管理:比较难,不适合互联网,一般用于内部系统

安全性:中

加密速度:快好 几个数量级 (软件加解密速度至少快 100 倍,每秒可以加解密数 M 比特 数据),适合大数据量的加解密处理

5.4.2. 非对称算法
密钥管理:密钥容易管理

安全性:高

项目中用过的加密算法:
1、用户密码保存: SHA-1 数据库中保存密文或者最终密文的中间状态,防止密码泄露
用法:将输入的密码加密n次,密文保存到数据库中,登录时对明文加密n次,进行密文匹配,为防止爆破可每次注册时生成一个随机盐
2、微信公众号消息加密:AES , 使用公众平台中设置的AESKey作为秘钥进行加解密
** 3、微信支付消息解密:HMAC-SHA256 或者 MD5**
用法:第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
发送的请求内容并未加密成密文,只是生成一个sign签名参数供微信进行校验,部分接口请求需要附带API证书
对支付通知再根据上述步骤生成sign(拼接参数不包括通知中的sign),将其余通知中的sign参数进行比对

4、支付宝支付请求加解密:RSA2 , 请求内容未进行加密,通过请求中添加签名来校验合法性。
加密所需参数:AppId、应用私钥、支付宝公钥
加密流程:
1、按照第一个字符的键值ASCII码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。
2.拼接
将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来,此时生成的字符串为待签名字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值