天天看點

加密政策

  這兩天研究了一下項目中的密碼加密,可以說得上是學到了很多。下面來大緻說一下。

  單向加密算法主要用來驗證資料傳輸的過程中,是否被篡改過。

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)

加密政策
加密政策

  後端校驗示例

  後端加密示例