有关DES加密的问题。

boyard 2005-01-13 10:25:58
try{ //生成一个密鈅
sr = new SecureRandom(); //生成一个随机数源
KeyGenerator kg = KeyGenerator.getInstance("DES"); //选择DES算法
kg.init(sr);
SecretKey key = kg.generateKey(); //生成密钥
rawKeydata = key.getEncoded(); //获取密匙数据
encode = new String(rawKeydata);
}
catch(java.security.NoSuchAlgorithmException ex){
System.out.println("encryption error!");
}
DES生成的密钥是byte[],转为String后显示是不可读的,如“u%皯n”。
有何方法使该密钥变成可读,生成如“AD3GJ8D8”的表达形式。
请教了!
...全文
191 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
treeroot 2005-01-13
  • 打赏
  • 举报
回复
看API就可以了
boyard 2005-01-13
  • 打赏
  • 举报
回复
上面关于转化的相关知识,我不是很了解,哪可以找到这方面的资料?
treeroot 2005-01-13
  • 打赏
  • 举报
回复
sorry
boyard 2005-01-13
  • 打赏
  • 举报
回复
多谢。
另:
int b = array[j] & 0xFF; 应改成 int b = rawKeydata[i] & 0xFF;


treeroot 2005-01-13
  • 打赏
  • 举报
回复
StringBuffer sb = new StringBuffer();
for (int i = 0; i < rawKeydata.length; i++) {
int b = array[j] & 0xFF;
if (b < 0x10) sb.append('0');
sb.append(Integer.toHexString(b));
}
System.out.println(sb.toString());
swordmanyang 2005-01-13
  • 打赏
  • 举报
回复
用BASE64对加密后的数据进行编码就可以了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧