国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用Java實現3DES

2019-11-14 21:11:43
字體:
來源:轉載
供稿:網友
java實現3DES

3DES,即三重DES,是DES的加強版,也是DES的一個更安全的變形。它使用3個56位(共168位)的密鑰對數據進行三次加密,和DES相比,安全性得到了較大的提高。

實際上,3DES是一個過渡的加密算法。1999年,NIST將3-DES指定為DES向AES過渡的加密標準。

3DES以DES為基本模塊,通過組合分組方法設計出分組加密算法。若三個密鑰互不相同,本質上就相當于用一個長為168位的密鑰進行加密,大大加強了數據的安全性。

若數據對安全性要求不高,可以讓其中的兩個密鑰相等,這樣,密鑰的有效長度也有112位。

在Java的加密體系中,使用3DES非常簡單,程序結構和使用DES時相同,只不過在初始化時將算法名稱由"DES"改為"DESede"即可。

下列程序基本原理和P12_01相同,只不過將加密和解密過程寫在一起。

import java.security.Security;

import javax.crypto.Cipher;

import javax.crypto.KeyGenerator;

import javax.crypto.SecretKey;

public class P12_02 {

public static void main(String[] args) throws Exception {

//KeyGenerator提供對稱密鑰生成器的功能,支持各種算法

KeyGenerator keygen;

//SecretKey負責保存對稱密鑰

SecretKey deskey;

//Cipher負責完成加密或解密工作

Cipher c;

Security.addPRovider(new com.sun.crypto.provider.SunJCE());

//實例化支持3DES算法的密鑰生成器,算法名稱用DESede

keygen = KeyGenerator.getInstance("DESede");

//生成密鑰

deskey = keygen.generateKey();

//生成Cipher對象,指定其支持3DES算法

c = Cipher.getInstance("DESede");

String msg = "郭克華_安全編程技術";

System.out.println("明文是:" + msg);

//根據密鑰,對Cipher對象進行初始化,ENCRYPT_MODE表示加密模式

c.init(Cipher.ENCRYPT_MODE, deskey);

byte[] src = msg.getBytes();

//加密,結果保存進enc

byte[] enc = c.doFinal(src);

System.out.println("密文是:" + new String(enc));

//根據密鑰,對Cipher對象進行初始化,ENCRYPT_MODE表示加密模式

c.init(Cipher.DECRYPT_MODE, deskey);

//解密,結果保存進dec

byte[] dec = c.doFinal(enc);

System.out.println("解密后的結果是:"+ new String(dec));

}

}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伽师县| 郎溪县| 五河县| 西乌| 邵东县| 故城县| 房产| 陇西县| 巴东县| 宁化县| 耿马| 梧州市| 马边| 南平市| 安多县| 锦州市| 涟源市| 晋州市| 兴国县| 乌海市| 凤台县| 临猗县| 镇远县| 保山市| 甘泉县| 定西市| 扶沟县| 象山县| 鄂尔多斯市| 长丰县| 开化县| 囊谦县| 濉溪县| 德格县| 偏关县| 大连市| 达日县| 略阳县| 湖南省| 五台县| 镇远县|