Java DES 加密/解密
发布时间:2020-05-24 18:22:33 所属栏目:Java 来源:互联网
导读:Java DES 加密/解密
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.Security;
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
public class Main {
static Cipher ce;
static Cipher cd;
public static void main(String args[]) throws Exception {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
SecretKey skey = KeyGenerator.getInstance("DES").generateKey();
byte[] initializationVector = new byte[]{0x10,0x10,0x01,0x04,0x02};
AlgorithmParameterSpec algParameters = new IvParameterSpec(initializationVector);
ce = Cipher.getInstance("DES/CBC/PKCS5Padding");
cd = Cipher.getInstance("DES/CBC/PKCS5Padding");
ce.init(Cipher.ENCRYPT_MODE,skey,algParameters);
cd.init(Cipher.DECRYPT_MODE,algParameters);
FileInputStream is = new FileInputStream("C:/Users/nikos7/Desktop/output.txt");
FileOutputStream os = new FileOutputStream("C:/Users/nikos7/Desktop/output2.txt");
int dataSize = is.available();
byte[] inbytes = new byte[dataSize];
is.read(inbytes);
String str2 = new String(inbytes);
System.out.println("Input file contentn" + str2 + "n");
write_encode(inbytes,os);
os.flush();
is.close();
os.close();
System.out.println("Ecrypted Content to output2.txtn");
is = new FileInputStream("C:/Users/nikos7/Desktop/output2.txt");
byte[] decBytes = new byte[dataSize];
read_decode(decBytes,is);
is.close();
String str = new String(decBytes);
System.out.println("Decrypted file contents:n" + str);
}
public static void write_encode(byte[] bytes,OutputStream output) throws Exception {
CipherOutputStream cOutputStream = new CipherOutputStream(output,ce);
cOutputStream.write(bytes,bytes.length);
cOutputStream.close();
}
public static void read_decode(byte[] bytes,InputStream input) throws Exception {
CipherInputStream cInputStream = new CipherInputStream(input,cd);
int position = 0,i;
while ((i = cInputStream.read()) != -1) {
bytes[position] = (byte) i;
position++;
}
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
