(二)加密

来源:互联网 发布:网络通信 编辑:程序博客网 时间:2024/06/06 18:55

开始打算一天一博客,发现不太现实,还是稳妥的,认真总结写博客。

这篇博客说说(AES)对称加密加密。

分析:KeyGenerator秘钥生成器进行初始化,SecureRandom产生的随机数

说到随机数就不得不提下java常见的几种随机数 Random、ThreaadLocalRandom、SecureRandom、Math.random()

Math.random()比较常见,默认是生成0~1之间的小数 是java.lang.Math类中的静态方法

Random random.nextInt() 参数为生成的范围 是java.util.Random类中的方法

两者对比 Math.random是线程安全的,多线程环境都能被调用。 平时我们用(int)(Math.random()*n)的方式来生成随机数即可。

其中random中传的参数是伪随机,具体来说就是相同的伪随机种子所生成的随机序列相同。

java中有伪随机型和安全型两种随机生成器,伪随机生成器根据特定公式将seed转换成新的伪随机数据的一部分,安全随机

生成器在底层依赖到操作系统提供的随机事件来生成数据。

ThreaadLocalRandom和random的区别是,前者继承自后者,前者用于多线程。

SecureRandom 是一个提供加密的强随机数生成器的类,getInstance(指定的算法,包提供程序),generateSeed(设置种子的字节数)

SercreKey我们生成里秘钥,最后将二进制数据编码为BASE64字符串


 
1、toKey这个方法是来确定种子是用什么加密算法,

2、然后返回基本编码格式的秘钥,如果此秘钥不支持编码,则返回null;

3、根据给定的raw字节数组构造一个用AES算法加密的密钥。

4、创建密码器,以加密的方式用秘钥初始化此Cipher。Ciper类为加密和解密提供密码功能。

ENCRYPT_MODE 加密数据 DECRYPT_MODE 解密数据

5、按data单部分操作加密指定的。doFinal()方法之一完成单步的加密或解密数据。

分析:区别DECRYPT_MODE解密

原创粉丝点击