加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何使用KeyGenerator稍后生成的密钥?

发布时间:2020-12-14 19:19:22 所属栏目:Java 来源:网络整理
导读:我正在编写一个在DES中进行加密和解密的程序.加密过程中使用的密钥应该在解密时使用吗?我的问题是加密和解密是在不同的机器上运行的.这是密钥在加密过程中的生成方式. SecretKey key = KeyGenerator.getInstance("DES").generateKey(); 所以,我以为我会把密

我正在编写一个在DES中进行加密和解密的程序.加密过程中使用的密钥应该在解密时使用吗?我的问题是加密和解密是在不同的机器上运行的.这是密钥在加密过程中的生成方式.

SecretKey key = KeyGenerator.getInstance("DES").generateKey();

所以,我以为我会把密钥写入文件.但看起来我可以将一个SecretKey对象强制转换为String但反之亦然!那么,如何提取文本文件中包含的密钥呢?并作为此声明的输入传递?

 decipher.init(Cipher.DECRYPT_MODE,key,paramSpec);

否则是否可以在加密和解密过程中将密钥作为用户的输入?

最佳答案
做这个:

SecretKey key = KeyGenerator.getInstance("DES").generateKey();
byte[] encoded = key.getEncoded();
// save this somewhere

然后呢:

byte[] encoded = // load it again
SecretKey key = new SecretKeySpec(encoded,"DES");

但请记住,今天DES是不安全的(它可以相对容易地强制执行).强烈考虑使用AES代替(只需将“DES”替换为“AES”).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读