AES加密算法实现
来源:互联网 发布:淘宝开店货铺太多好吗 编辑:程序博客网 时间:2024/05/20 00:10
实现的类如下
import java.security.SecureRandomimport javax.crypto.spec.SecretKeySpecimport javax.crypto.{ Cipher, KeyGenerator}/** * Created by neunn on 2016/5/12. */class AES ( val data:Array[Byte],key:String){ val kgen = KeyGenerator.getInstance("AES"); val random:SecureRandom=SecureRandom.getInstance("SHA1PRNG"); random.setSeed(key.getBytes()); kgen.init(128, random);//密钥长度定为128位 val secretKey = kgen.generateKey(); val enCodeFormat = secretKey.getEncoded(); val Key = new SecretKeySpec(enCodeFormat, "AES"); val cipher = Cipher.getInstance("AES");// 创建密码器 def encrypt():Array[Byte]= { cipher.init(Cipher.ENCRYPT_MODE, Key);// 初始化 val result = cipher.doFinal(data); result; // 加密 } def decrypt():Array[Byte]= { cipher.init(Cipher.DECRYPT_MODE, Key);// 初始化 val result = cipher.doFinal(data); result; // 解密 }}
博主参考了这篇文章http://blog.csdn.net/hbcui1984/article/details/5201247
注意:
这里的key值不是真的密钥,而是通过以key值为参数用伪随机数生成的,同一套程序在不同系统可能或出现差异,比如博主用上诉文章的代码,在用windows给linux发送时,两个系统生成了不同的密钥,发生了:
javax.crypto.BadPaddingException: Given final block not properly padded 错误
之后修改了代码,变成了本文的代码,这个错误就解决了
1 0
- AES加密算法实现流程
- AES加密算法实现流程
- AES加密算法实现
- AES加密算法实现
- AES实现加密算法
- 用C#实现AES加密算法
- AES,RSA,ECC加密算法实现
- Android AES加密算法及其实现
- Android AES加密算法及其实现
- AES,RSA,ECC加密算法实现
- JAVA实现AES加密算法代码
- AES加密算法的实现原理
- Android AES加密算法及其实现
- Android AES加密算法及其实现
- 用C#实现AES加密算法
- 用C#实现AES加密算法
- C# 实现的 AES 加密算法
- java实现AES可逆加密算法
- imageloader的简单使用
- 算法03 之链表
- json11库的使用
- 扫码登录操作过程
- 论java设计模式
- AES加密算法实现
- 1258:Agri-Net Prime()水题
- Android获取系统时间
- 使用svnsync实现svn库同步
- 正则表达式学习地址
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
- iOS CoreData数据库之增删改查
- dlib人脸特征点对齐
- 算法04 之二叉树