작은 코드 JAVA 파일 암호 화(DES 3)
package com.cit.webservice;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.OutputStream;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
public class DESCipherUtil {
public static Key createKey() throws NoSuchAlgorithmException {//
Security.insertProviderAt(new com.sun.crypto.provider.SunJCE(), 1);
KeyGenerator generator = KeyGenerator.getInstance("DES");
generator.init(new SecureRandom());
Key key = generator.generateKey();
return key;
}
public static Key getKey(InputStream is) {
try {
ObjectInputStream ois = new ObjectInputStream(is);
return (Key) ois.readObject();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static Cipher getCipher(Key key,int mode) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException{
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(mode, key);
System.out.println(mode);
return cipher;
}
public static void decrypt(InputStream is ,OutputStream os, Key key) throws IOException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException{
byte[] buff = new byte[1024];
int count = 0;
CipherInputStream cis = new CipherInputStream(is,getCipher(key,Cipher.DECRYPT_MODE));
while ((count = cis.read( buff)) >=0) {
os.write( buff, 0, count);
}
cis.close();
os.flush();
}
public static void encrypt(InputStream is ,OutputStream os, Key key) throws IOException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException{
byte[] buff = new byte[1024];
int count = 0;
CipherOutputStream cos = new CipherOutputStream(os,getCipher(key,Cipher.ENCRYPT_MODE));
while ((count = is.read(buff)) >=0) {
cos.write(buff, 0, count);
}
cos.flush();
cos.close();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.