天天看点

加密策略

  这两天研究了一下项目中的密码加密,可以说得上是学到了很多。下面来大致说一下。

  单向加密算法主要用来验证数据传输的过程中,是否被篡改过。

BASE64 严格地说,属于编码格式,而非加密算法

MD5(Message Digest algorithm 5,信息摘要算法)

SHA(Secure Hash Algorithm,安全散列算法)

HMAC(Hash Message Authentication Code,散列消息鉴别码

    2.对称和非对称加密算法

    对称和非对称加密算法主要采用公钥和私钥的形式,来对数据加密。

DES(Data Encryption Standard,数据加密算法)

PBE(Password-based encryption,基于密码验证)

RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)

DH(Diffie-Hellman算法,密钥一致协议)

DSA(Digital Signature Algorithm,数字签名)

ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)

  创建用户:同一默认密码处理,用户登录时要修改密码。获取到默认密码之后先进行一次sha1加密,然后根据user code 和 salt进行第二次sha1加密存入数据库。

  校验用户:用户登录时,js处理密码。首先进行一次sha1加密,然后进行一次rsa加密(需要向后台请求ras公钥的modulus 和 exponent)。后台通过rsa公钥对应的私钥进行解密,然后根据user code进行找到对应的用户,通过user code 和 salt进行sha1加密,将得到的结果和数据库中的进行对比。

  js sha1算法加密(sha1.js)

加密策略
加密策略

View Code

  encrypt.js

  js rsa 算法加密(security.js)

加密策略
加密策略

   前端加密示例

  java rsa 算法(RSAUtils.java)

加密策略
加密策略

  java rsa 公钥获取(传递给前端)

加密策略
加密策略

  java sha 算法(PasswordUtils.java)

加密策略
加密策略

  后端校验示例

  后端加密示例