代码如下:
import java.io.UnsupportedEncodingException;import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;public class DesDemo {
public static byte[] decryptByDES(byte[] bytE,byte[] bytKey) throws Exception{
DESKeySpec desKS = new DESKeySpec(bytKey);
SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
SecretKey sk = skf.generateSecret(desKS);
Cipher cip = Cipher.getInstance("DES");
IvParameterSpec iv = new IvParameterSpec(bytKey);
cip.init(Cipher.DECRYPT_MODE,sk,iv);
return cip.doFinal(bytE);
}
public static byte[] encryptByDES(byte[] bytP,byte[] bytKey) throws Exception{
DESKeySpec desKS = new DESKeySpec(bytKey);
SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
SecretKey sk = skf.generateSecret(desKS);
Cipher cip = Cipher.getInstance("DES/ECB/PKCS5Padding");
cip.init(Cipher.ENCRYPT_MODE,sk);
return cip.doFinal(bytP);
}
public static void main(String[] args) throws UnsupportedEncodingException, Exception {
byte[] data="12345678".getBytes("utf-8");
byte[] key="87654321".getBytes("utf-8");
byte[] Master_Text=DesDemo.encryptByDES(data, key);
System.out.println(Master_Text.length);
}
}输入的结果是:16
import java.io.UnsupportedEncodingException;import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;public class DesDemo {
public static byte[] decryptByDES(byte[] bytE,byte[] bytKey) throws Exception{
DESKeySpec desKS = new DESKeySpec(bytKey);
SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
SecretKey sk = skf.generateSecret(desKS);
Cipher cip = Cipher.getInstance("DES");
IvParameterSpec iv = new IvParameterSpec(bytKey);
cip.init(Cipher.DECRYPT_MODE,sk,iv);
return cip.doFinal(bytE);
}
public static byte[] encryptByDES(byte[] bytP,byte[] bytKey) throws Exception{
DESKeySpec desKS = new DESKeySpec(bytKey);
SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
SecretKey sk = skf.generateSecret(desKS);
Cipher cip = Cipher.getInstance("DES/ECB/PKCS5Padding");
cip.init(Cipher.ENCRYPT_MODE,sk);
return cip.doFinal(bytP);
}
public static void main(String[] args) throws UnsupportedEncodingException, Exception {
byte[] data="12345678".getBytes("utf-8");
byte[] key="87654321".getBytes("utf-8");
byte[] Master_Text=DesDemo.encryptByDES(data, key);
System.out.println(Master_Text.length);
}
}输入的结果是:16
解决方案 »
- Drools Rule Engine 多线程访问 问题(顶者有分,回帖可看美女图片。)
- java问题
- Exception in thread "main" java.lang.NullPointerException
- java群
- 我是菜鸟,各位牛人帮帮忙,一个简单问题。
- 一个Swing的编译问题, 在线等?
- Eclispe 3.0.1的Visual Editor的问题.在线等待.
- oracle 一表中的字段类型为long 型对应java中的数据类型是什么???.....................
- 刚学java的巨小问题?
- 关于Java Swing界面编程.高手请进!
- 各位大侠 给看看啊
- 异常Exception in thread "main" java.lang.NullPointerException 怎么解决。
我现在遇到的问题是:
c生成的密钥和密文,如何在java下解密?(c的密文只有8个字节)
PS:java的加密模式是EBC,填充模式不允许用NoPadding。我试过用CBC/NoPadding,但是加密的结果不是想要的结果。