當前位置:編程學習大全網 - 源碼下載 - java des加密為什麽和網站

java des加密為什麽和網站

JAVA實現

加密

代碼有詳細解釋,不多廢話。

註意:DES加密和解密過程中,密鑰長度都必須是8的倍數

[java] view plain copy

public byte[] desCrypto(byte[] datasource, String password) {

try{

SecureRandom random = new SecureRandom();

DESKeySpec desKey = new DESKeySpec(password.getBytes());

//創建壹個密匙工廠,然後用它把DESKeySpec轉換成

SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");

SecretKey securekey = keyFactory.generateSecret(desKey);

//Cipher對象實際完成加密操作

Cipher cipher = Cipher.getInstance("DES");

//用密匙初始化Cipher對象

cipher.init(Cipher.ENCRYPT_MODE, securekey, random);

//現在,獲取數據並加密

//正式執行加密操作

return cipher.doFinal(datasource);

}catch(Throwable e){

e.printStackTrace();

}

return null;

}

解密

代碼有詳細註釋,不多廢話

[java] view plain copy

private byte[] decrypt(byte[] src, String password) throws Exception {

// DES算法要求有壹個可信任的隨機數源

SecureRandom random = new SecureRandom();

// 創建壹個DESKeySpec對象

DESKeySpec desKey = new DESKeySpec(password.getBytes());

// 創建壹個密匙工廠

SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");

// 將DESKeySpec對象轉換成SecretKey對象

SecretKey securekey = keyFactory.generateSecret(desKey);

// Cipher對象實際完成解密操作

Cipher cipher = Cipher.getInstance("DES");

// 用密匙初始化Cipher對象

cipher.init(Cipher.DECRYPT_MODE, securekey, random);

// 真正開始解密操作

return cipher.doFinal(src);

}

測試場景

例如,我們可以利用如上函數對字符串進行加密解密,也可以對文件進行加密解密,如:

[java] view plain copy

//待加密內容

String str = "測試內容";

//密碼,長度要是8的倍數

String password = "12345678";

byte[] result = DESCrypto.desCrypto(str.getBytes(),password);

System.out.println("加密後內容為:"+new String(result));

//直接將如上內容解密

try {

byte[] decryResult = des.decrypt(result, password);

System.out.println("加密後內容為:"+new String(decryResult));

} catch (Exception e1) {

e1.printStackTrace();

}

  • 上一篇:股票的平均真實波動率意味著什麽?
  • 下一篇:如何安裝mysql服務
  • copyright 2024編程學習大全網