美文网首页
登录加密方式解读

登录加密方式解读

作者: 呦释原点 | 来源:发表于2019-12-24 15:02 被阅读0次

1.获取地址中通过DES加密过的参数v。

  1. 使用DES解密参数v值。 获取登录信息main
  2. 将main信息保存到session中
  3. 使用 main信息和 serverStr(一个字符串)去调用登录接口

4.1将main信息和serverStr封装成一个json数据info作为提交参数
serverStr为对应接口的一个字符串
Date和Time为当前日期和时间,
userId和menuId在cookie中的获取默认为空,
appid和appkey为产品固定字符串
sign 为随机字符串长度20

4.2 将info转化为提交的数据dataInfo
timestamp:时间字符串
nonce:随机字符串长度为10
appid:cookie中的获取默认为空(info中的appid)
data:对info进行AES加密获取到的数据。
加密密钥为固定值或后台给
signature:timestamp、nonce、data、sigkey四个排序拼接为字符串
后做SHA1哈希加密的结果。 作为签名。
sigkey为签名密钥后台给或固定值.
version:版本号,固定字符串

4.3 将4.2中拿到的dataInfo作为ajax请求的data数据,请求登录接口,请求成功返回responseData

4.4 对responseData进行SHA1验签和AES解密

4.4.1 拿到responseData中的timestamp、nonce、data和本地sigKey排序拼接为字符串进行SHA1哈希
加密生成signatureTwo签名
4.4.2signatureTwo和responseData中的signature做比较是否相等。
如果相等解密responseData中的data数据,如果不相等报错
4.4.3使用secKey对responseData中的data数据进行AES解密。
4.4.4将解密数据通过接口回调返回给ajax调用者


image.png

过程

  1. 要发送的数据A

  2. 要发的数据A通过对称加密秘钥O(AES加密)得到密文数据B,数据B和其他签名数据C1和C2、签名关键D一起用哈希算法SHA1生成签名E (签名关键字D和秘钥O是前后台一起约定好的, C1,C2本地生成的)

  3. B和E和C1和C2一起发送给后台

  4. 后台怎么处理???
    4.1后台用签名关键字D,签名数据C1、C2和密文数据B用相同的哈希算法SHA1签名,生成新的签名E2, 判断E和E2是否想对,相等, 数据没有篡改过,安全。 然后用秘钥O解密数据B拿到登录信息A。 后面 组织要发送给前端的数据Y,使用加密秘钥O加密Y生成密文F,将密文F和签名关键字D和C1和C2一起哈希SHA1运算生成签名G。 将签名G和加密的数据F,C1,C2组织成数据M回传给前端
    4.2另外C1,C2可以是时间戳或者某规则字符串。 服务器可以通过比较发送的时间和接收的时间的差值来判断是否被拦截过,来确认秘钥O是否被破解过(破解秘钥耗时的)提高安全性,也可以判断规则字符串是否符合该规则

  5. 前端拿到返回的数据M(包含签名数据C1和C2,加密过的数据F,和一个签名G)

  6. 前端从M中拿到的签名数据C1、C2和加密过的数据F,加密关键字D生成签名G2

  7. G2和G对比,相等则数据没有篡改,安全

  8. 使用AES秘钥O解密数据F拿到返回的数据Y

另外非对称加密过程

假如现在 你向支付宝 转账(术语数据信息),为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对传送的信息进行数字加密和签名,其传送过程为:

  1. 首先你要确认是否是支付宝的数字证书,如果确认为支付宝身份后,则对方真实可信。可以向对方传送信息,

  2. 你准备好要传送的数字信息(明文)计算要转的多少钱,对方支付宝账号等;

  3. 你 对数字信息进行哈希运算,得到一个信息摘要(客户端主要职责);

  4. 你 用自己的私钥对信息摘要进行加密得到 你 的数字签名,并将其附在数字信息上;

  5. 你 随机产生一个加密密钥,并用此密码对要发送的信息进行加密(密文);

  6. 你用 支付宝的公钥对刚才随机产生的加密密钥进行加密,将加密后的 DES 密钥连同密文一起传送给支付宝;

  7. 支付宝收到 你 传送来的密文和加密过的 DES 密钥,先用自己的私钥对加密的 DES 密钥进行解密,得到 你随机产生的加密密钥;

  8. 支付宝 然后用随机密钥对收到的密文进行解密,得到明文的数字信息,然后将随机密钥抛弃;

  9. 支付宝 用你 的公钥对 你的的数字签名进行解密,得到信息摘要;

  10. 支付宝用相同的哈希算法对收到的明文再进行一次哈希运算,得到一个新的信息摘要;

  11. 支付宝将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。

  12. 确定收到信息,然后进行向对方进行付款交易,一次非对称密过程结束。在这后面的流程就不属于本次非对称加密的范畴,算支付宝个人的自我流程,也就是循环以上过程。

简图

参考:https://www.jianshu.com/p/b078282653b3

相关文章

  • 登录加密方式解读

    1.获取地址中通过DES加密过的参数v。 使用DES解密参数v值。 获取登录信息main 将main信息保存到se...

  • 一键登录了解一下?

    登录方式 我们先来看一下目前的一些登录方式。 账号 + 密码 使用账号加密码是最传统的登录方式,可以说是简单粗暴的...

  • Flutter加密插件 2022-06-05 周日

    现实需求 登录的时候需要输入用户名和密码。密码不能直接传给后台,应该先进行加密。常用的加密方式有对称加密:比如AE...

  • Laravel Auth加密驱动

    登录加密 Auth认证加密方式并不适用于本人的原有数据,原有数据是MD5的16位加密 创建一个驱动 AuthSer...

  • 关于SSH加密链接的一些知识

    密码的登录方式是通过输入账户和密码来获取服务端的加密信息,ssh密钥登录方式可以不用输入密码,就可以建立安全的链接...

  • iOS如何使用MD5加密

    在登录注册时,经常采用MD5加密技术对密码,也用于对敏感数据进行加密。本文简单介绍了iOS中MD5加密的使用方式。...

  • RSA非对称加密

    RSA非对称加密 RSA非对称加密, 适用于Java和iOS 应用场景:用户登录时对登录密码进行加密 启动终端, ...

  • 登录+加密

    加密的几种算法 非对称加密RSA 公钥 私钥 散列函数 -MD5(32位密钥)-SHA1(40位密钥) -SHA2...

  • 登录加密

    使用sha256加密方式 原理:前端获取随机值,进行多次加密后下发给后端比对后端同样方式加密出来的密码的结果是否一...

  • 登录加密

    https://www.bianchengquan.com/article/150898.html

网友评论

      本文标题:登录加密方式解读

      本文链接:https://www.haomeiwen.com/subject/gscfoctx.html