java加密与解密

      在当今信息交流日益方便的年代,安全问题就凸显得越来越重要了。今天我来浅谈java中所涉及的安全知识,我所说的java安全指的更多的是java JDK 中的关于加密,解密的API的相关知识,但是基本上也能够涵盖当今在各大编程语言中都通常会用到的一些算法思想。

     首先,推荐2个开源工具给广大的安全方面的爱好者,一个是Bouncy Castle 加密组件,Commons Codec辅助工具,2个非常强大的工具,里面内置了许多算法的实现,比如DES,MD5,RHA基本都有,还有算法在java.security没有出现过的.具体怎么用,我在这里就不说了。在java JDK中,关于加密,解密的相关的API都在java.security包中,里面的类也的确是挺多的。我就针对java平台,来侃侃其中涉及到的当今的加密解密的基本算法。1.消息摘要算法,主要用于验证数据完整性的算法,比如md*系列算法,还有经常听到的32位的CRC循环冗余校验算法,还有更高一级的SHA算法,算是md5算法的升级版本。2.对称加密算法,用于初等数据加密,典型的一个是数据加密标准算法DES,在此基础上又衍生出了3DES算法,高级数据加密标准,AES,对称加密算法,顾名思义,当然是遵循相同的口令,进行加解密。3.非对称加密算法,用于高等数据加密,比较典型的有RSA算法,其他的诸如DH密钥交换算法大家可能听得会少点,非对称密钥加密算法与前面那种算法不同,是基于一对公私钥进行的,比如你可以用公钥加密,接受方用私钥进行解密,或者反着而来,你用私钥加密,然后对方用公钥解密。但是非对称加密算法在效率时间上比对称加密算法的代价要稍稍高点,但是安全性确实是要好点,当时的时候把这2种算法结合起来,其实效果更佳,什么意思呢,用非对称加密算法来加密对称加密算法中需要用到的口令,而不是加密整个数据,这样代价就小了很多,当解密出对称加密算法的口令时,再用这个口令解密数据,这其实是一种更高一个级别的安全实现手法。3.数字签名算法,带密钥的消息摘要算法,相当于是我们把密钥相关信息保存在了一个中间文件中,一个后缀名.keystore的文件,通过基于此文件进行加解密操作。好了,大体上在java中的算法就是差差不多这样了,算是普及了一下安全的知识了,但是肯定有遗漏的吧,望大家能积极补充哈

你可能感兴趣的:(加密,解密,密码学)