亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

JDK加密解密

import java.security.Key;

import javax.crypto.Cipher;

import javax.crypto.KeyGenerator;

import javax.crypto.SecretKey;

import javax.crypto.SecretKeyFactory;

import javax.crypto.spec.DESKeySpec;

import org.apache.commons.codec.binary.Hex;

public class ImoocDes {

public static void main (String [] args) {

ImoocDes imoocDes = new ImoocDes();

imoocDes.jdkDes("imooc security des");

}

public void jdkDes(String password) {

try {

//生成key

KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");

SecretKey secretKey = keyGenerator.generateKey();

byte [] bytKey = secretKey.getEncoded();

//key轉換

DESKeySpec dESKeySpec = new DESKeySpec(bytKey);?

SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DES");//參數指定加密方式

Key secretKey1 = secretKeyFactory.generateSecret(dESKeySpec);

//加密

Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");

cipher.init(Cipher.ENCRYPT_MODE, secretKey1);

byte[] result = cipher.doFinal(password.getBytes());

System.out.println("jdk:" + Hex.encodeHexString(result));

//解密

cipher.init(Cipher.ENCRYPT_MODE, secretKey1);

result = cipher.doFinal(result);

System.out.println("jdk:" + new String(result));

} catch (Exception e) {

e.printStackTrace();

}

}

}

上面的代碼都是按照老師的代碼寫的遇到了兩個問題請大家幫忙解答一下1

問題1多次運行時加密的結果不一樣這樣正常嗎

問題2解密的時候為什么解密結果一直是亂碼

兩次運行結果如下

第一次運行

jdk:b2f7b3a368cc58fb16e9c3fc3980c9da08cd09670b05e47d

jdk:>|V'bC( mA4?p ?d

第二次運行

jdk:ac91a46c660ce3170281f64dc17489756ad8e15169fda33d

jdk:C 03H



正在回答

1 回答

不好意思,懂了!原來是bytKey每次運行時不一樣的原因!

byte [] bytKey = secretKey.getEncoded();

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JAVA實現對稱加密
  • 參與學習       32023    人
  • 解答問題       53    個

為你帶來軟硬件通用的對稱加密算法,以及他們的應用范圍

進入課程

JDK加密解密

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號