Java加密解密

来自ling
跳转至: 导航搜索

http://blog.csdn.net/achuo/article/details/71743617 java常用的加密解密方法

http://blog.csdn.net/sinat_29581293/article/details/52126519 Java加密解密全解

双向加密

对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。需要对加密和解密使用相同密钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。

DES算法

3DES算法

AES算法

HEX

    protected String encodeToken(String token) {
        String encode = new String(Hex.encode(token.getBytes()));
        logger.debug(token + "==>" + encode);
        return encode;
    }

    protected String decodeToken(String token) {
        if (!Base64.isBase64(token.getBytes())) {
            throw new BusinessException("Cookie token was not Base64 encoded; value was '" + token + "'");
        }
        String cookieAsPlainText = new String(Hex.decode(token));
        logger.debug(token + "==>" + cookieAsPlainText);
        return cookieAsPlainText;
    }

非对称加密

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥 。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

RSA 公钥加密算法

DSA算法

单向加密(信息摘要)

MD5、SHA、HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法,我们称之为单向加密算法。

MD5 -- message-digest algorithm 5 (信息-摘要算法)缩写,广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值。实现如下图所示: MD5.png SHA(Secure Hash Algorithm,安全散列算法),数字签名等密码学应用中重要的工具,被广泛地应用于电子商务等信息安全领域。虽然,SHA与MD5通过碰撞法都被破解了,但是SHA仍然是公认的安全加密算法,较之MD5更为安全。实现如下图所示: SHA.png HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。 实现如下图所示: HMAC.png