跳转至

加密算法

时间:2017-05-17 11:02:20

参考:

  1. 非对称加密算法有哪些?他们的优缺点是什么?
  2. 图解 ECDHE 密钥交换算法

简介

加密算法分为以下几种:

  • 单向加密算法:不可逆加密,不可解密。包含MD5、SHA和HMAC等。
  • 双向加密算法:

    • 对称加密:加密和解密使用相同的秘钥。包含DES、IDEA、RC2、RC4、SKIPJACK、RC5和AES等。
    • 非对称加密:公钥加密私钥解密。包含RSA、ECC

加密算法说明

单向加密算法

  • MD5:用于保存用户名密码,计算摘要等。
  • SHA:取一串输入码,并把它们转化为长度较短、位数固定的输出序列即散列值。

    ```java //指定摘要算法 MessageDigest sha = MessageDigest.getInstance("SHA-256"); //封装输入流 DigestInputStream din = new DigestInputStream(fileInputStream, sha); while(din.read() != -1){

    } din.close(); //获取摘要 byte[] digest = sha.digest(); StringBuilder result = new StringBuilder(fileName); result.append(":"); result.append(DatatypeConverter.printHexBinary(digest)); System.out.println(result); ```

双向加密算法

可解密的加密算法。

对称加密

  • DES
  • AES

非对称加密

  • DH(Diffie-Hellman):它只是生成可用作对称密钥的秘密数值。在Diffie-Hellman密钥交换过程中,发送方和接收方分别生成一个秘密的随机数,并根据随机数推导出公开值,然后,双方再交换公开值。Diffie-Hellman算法的基础是具备生成共享密钥的能力。只要交换了公开值,双方就能使用自己的私有数和对方的公开值来生成对称密钥,称为共享密钥,对双方来说,该对称密钥是相同的,可以用于使用对称加密算法加密数据。
  • RSA:
  • DSA:
  • ECC:椭圆曲线加密算法。