在信息技术和加密算法

1散列加密

    单向散列加密是指通过对不同输入长度的信息进行散列计算。得到固定长度的输出。这个散列计算过程是单向的,不可逆的。

经常使用的单向散列算法有MD5。SHA等。

    比方站点中,用户password,一般能够进行MD5加密后保存,用户登录时,对用户输出的password进行加密后和数据库密文进行比較,假设一致。则验证成功。

   为了加强计算的安全性,能够对数据加上密钥,添加破解的难度。

推荐使用 apache common的 commons-codec的 jar包 比方(commons-codec-1.8.jar)

    /**
     * 字符串进行MD5加密
     * @param str
     * @return
     */
    public static String encryptMD5(String str) {
        return DigestUtils.md5Hex(str);
    }

    /**
     *  将字符串 SHA 加密
     * @param str
     * @return
     */
    public static String encryptSHA(String str) {
        return DigestUtils.sha1Hex(str);
    }


2对称加密

    对称加密是指加密和解密使用同样的密钥。

明文能够依据密钥进行加密。密文能够依据密钥进行解密为明文。

    对称加密算法经常使用于Cookie加密,通信加密等场合。经常使用的算法有DES,RC,AES算法等。

    对称算法有点是算法简单。加密解密效率高,系统开销小,适合对大量数据加密。是一种传统加密手段,也是最经常使用的加密手段,适用于绝大多数须要加密的场合。

    

java-DES加密/解密 -demo: http://www.oschina.net/code/snippet_727646_18383

3非对称加密

    非对称加密,是指加密和解密使用不同的密钥。当中一个对外发布,称为公钥,另外一个不正确外发布。称为私钥。用公钥加密的信息必须用私钥解开,用私钥加密的信息仅仅有公钥才干解开。

    非对称加密技术经常使用于信息安全传输,数字签名等场合。经常使用算法有RSA算法等。

    比方信息发送者获得信息接受者的公钥。对提交信息进行加密,通过非安全传输通道将密文发送给接受者,接受者得到密钥后。用自己的私钥进行解密,获得明文信息。在传输过程中遭到信息窃取时。窃取者没有密钥无法获得明文。

    数字签名过程相反。签名者用自己的私钥对信息进行加密,发送接收方,接收方使用签名者的公钥对信息进行解密。因为私钥仅仅有签名者拥有,那么发送的信息具有签名性质。不可抵赖。


java-RSA加密/解密-demo :http://blog.csdn.net/centralperk/article/details/8558678

http://blog.csdn.net/liuhuabai100/article/details/7585879

4总结

    在实际应用中。可依据实际须要能够混合进行使用。同一时候加密技术中,密钥是十分关键的存在。一旦密钥泄露出去,加密信息就会失去秘密性。在一些安全性高的项目中,密钥和算法能够独立部署。向外提供加密和解密服务。由专人维护,系统性能开销较大。或者加密算法放在应用中,密钥单独部署。定时更新,密钥可进行切片存储多台server。每台server有专人管理,大家各司其职。没人能够查看完毕密钥信息。


參加文献:《大型站点技术架构》——李智慧(这本这本书确实是一本好书。可以大力发展人猿计划眼世界)

版权声明:本文博客原创文章。博客,未经同意,不得转载。

原文地址:https://www.cnblogs.com/blfshiye/p/4673448.html