跳转至

加密算法

#

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

参考:

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

简介#

加密算法分为以下几种:

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

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

加密算法说明#

单向加密算法#

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

    //指定摘要算法
    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:椭圆曲线加密算法。