加密算法
#
时间:2017-05-17 11:02:20
参考:
简介#
加密算法分为以下几种:
- 单向加密算法:不可逆加密,不可解密。包含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:椭圆曲线加密算法。