?? pbeenc.java
字號:
import java.io.*;
import java.util.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
public class PBEEnc{
public static void main(String args[]) throws Exception{
String s="Hello World!";
char[] passwd=args[0].toCharArray( );
PBEKeySpec pbks=new PBEKeySpec(passwd);
SecretKeyFactory kf=
SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey k=kf.generateSecret(pbks);
byte[] salt=new byte[8];
Random r=new Random( );
r.nextBytes(salt);
Cipher cp=Cipher.getInstance("PBEWithMD5AndDES");
PBEParameterSpec ps=new PBEParameterSpec(salt,1000);
cp.init(Cipher.ENCRYPT_MODE, k,ps);
byte ptext[]=s.getBytes("UTF8");
byte ctext[]=cp.doFinal(ptext);
// 將鹽和加密結果合并在一起保存為密文
FileOutputStream f=new FileOutputStream("PBEEnc.dat");
f.write(salt);
f.write(ctext);
// 打印鹽的值
for(int i=0;i<salt.length;i++){
System.out.print(salt[i] +",");
}
System.out.println("");
// 打印加密結果
for(int i=0;i<ctext.length;i++){
System.out.print(ctext[i] +",");
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -