怎样进行DES加密和解密?(50分)

G

guifuli

Unregistered / Unconfirmed
GUEST, unregistred user!
我在网上摘抄了一段关于DES加密算法的程序,运行正常,如下,但现在我想将其添加一个加密函数和一个解密函数,原型为:
public String encrypt(String encryptStr);
public String decrypt(String decryptStr);
请问怎样写这两个函数???
/*
安全程序 DESede/DES测试
*/
import java.security.*;
import javax.crypto.*;
public class testDES
{
public static void main(String[] args)
{
testDES my = new testDES();
my.run("要加密的信息");
}
public String encrypt(String encryptStr)
{
}
public String decrypt(String decryptStr)
{
}
public void run(String willDES)
{
//添加新安全算法,如果用JCE就要把它添加进去
Security.addProvider(new com.sun.crypto.provider.SunJCE());
String Algorithm = "DES";
//定义 加密算法,可用 DES,DESede,Blowfish
try
{
//生成密钥
KeyGenerator keygen = KeyGenerator.getInstance(Algorithm);
SecretKey deskey = keygen.generateKey();
//加密
System.out.println("加密前的二进串:"
+ byte2hex(willDES.getBytes()));
System.out.println("加密前的信息:"
+ willDES);
Cipher c1 = Cipher.getInstance(Algorithm);
c1.init(Cipher.ENCRYPT_MODE, deskey);
byte[] cipherByte = c1.doFinal(willDES.getBytes());
System.out.println("加密后的二进串:"
+ byte2hex(cipherByte));
//解密
c1 = Cipher.getInstance(Algorithm);
c1.init(Cipher.DECRYPT_MODE,deskey);
byte[] clearByte=c1.doFinal(cipherByte);
System.out.println("解密后的二进串:"
+ byte2hex(clearByte));
System.out.println("解密后的信息:"
+ (new String(clearByte)));
}
catch (java.security.NoSuchAlgorithmException e1)
{
e1.printStackTrace();
}
catch (javax.crypto.NoSuchPaddingException e2)
{
e2.printStackTrace();
}
catch (java.lang.Exception e3)
{
e3.printStackTrace();
}
}
private String byte2hex(byte[] b) //二进制转字符串
{
String hs = "";
String stmp = "";
for (int n = 0;
n<b.length;
n++)
{
stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length() == 1)
hs = hs + &quot;0&quot;
+ stmp;
else
hs = hs + stmp;
if (n < b.length-1)
hs = hs + &quot;:&quot;;
}
return hs.toUpperCase();
}
}
////////////////////////////////////////////////////
初学Java,多多指教.
 
原来是java,害我用delphi的眼光看了半天看不懂.
 
楼上的朋友,我是发在java版块里的.你怎么就不看一看呢.
 
靠,这个大富翁居然不能在Firefox下面运行,真是郁闷.
害得我非得重装Windows(提示,我的IE中毒了,不知是什么病毒,杀不死)
 
请帮忙.
 
顶部