求大神解释一下这个java加密的中AES函数调用,详细点考试 20

publicstaticbyte[]encrypt(Stringcontent,Stringpassword){try{KeyGeneratorkgen=KeyGener... public static byte[] encrypt(String content, String password) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128, new SecureRandom(password.getBytes()));
SecretKey secretKey = kgen.generateKey();
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
Cipher cipher = Cipher.getInstance("AES");// 创建密码器
byte[] byteContent = content.getBytes("utf-8");
cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
byte[] result = cipher.doFinal(byteContent);
return result; // 加密
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}
展开
 我来答
holy_h
2017-05-16
知道答主
回答量:7
采纳率:0%
帮助的人:5644
展开全部
AES加密有很多变换,看你写的代码,这应该是128位的。所以加密函数需要两个参数,一个是要加密的 明文,然后是密钥128位,都是字符型。password在函数里被换成byte【】型,总之就是变成适合java的aes加密函数的参数类型。byte[] result = cipher.doFinal(byteContent); 最后就加密明文得到输出
史文天大人ed0c63
2015-10-30 · TA获得超过1003个赞
知道小有建树答主
回答量:135
采纳率:83%
帮助的人:22.1万
展开全部
我是世界第一ADC
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式