재 : 상담자 Java 6 API docs for SecretKeyFactory 당 1
, 키 사양이에 generateSecret 및 getKeySpec에서 지원하는 알아 바이더의 문서를 참조 해
응용 프로그램 개발자 행동 양식. 예를 들어, 「SunJCE」프로 바이더에 의해 제공되는 DES 시큐리티 열쇠 팩토리는, DES 열쇠의 투명한 표현으로서 DESKeySpec를 지원해, 그 트리플시 키에 대한 그 프로 바이더의 비밀 열쇠 팩토리는 DESedeKeySpec를 Triple DES 키의 투명한 표현으로서 지원합니다. 우리가 PKCS에 대한 SunJCE provider documentation 보면
, 우리는 ...
사용해 PBEWithMD5AndDES를 참조하십시오 암호 기반 암호화 알고리즘에 정의 : RSA 연구소, "PKCS # 5 : 암호 기반 암호화 Standard "버전 1.5, 1993 년 11 월.이 알고리즘은 CBC를 암호 모드로, PKCS5Padding을 패딩 구성표로 사용하며 다른 암호 모드 또는 패딩 구성표와 함께 사용할 수 없습니다.
재 : 질문 동일한 문서에서 2
, 암호 기반 암호화를 사용하여 섹션 에서, 당신은 다음 예제 코드를 찾을 수 있습니다. 샘플 코드는 정적 소금을 사용하지만 보안 구현에서는 사용자가 암호를 변경할 때마다 임의의 소금을 생성합니다.
PBEKeySpec pbeKeySpec;
PBEParameterSpec pbeParamSpec;
SecretKeyFactory keyFac;
// Salt
byte[] salt = {
(byte)0xc7, (byte)0x73, (byte)0x21, (byte)0x8c,
(byte)0x7e, (byte)0xc8, (byte)0xee, (byte)0x99
};
// Iteration count
int count = 20;
// Create PBE parameter set
pbeParamSpec = new PBEParameterSpec(salt, count);
// Prompt user for encryption password.
// Collect user password as char array (using the
// "readPasswd" method from above), and convert
// it into a SecretKey object, using a PBE key
// factory.
System.out.print("Enter encryption password: ");
System.out.flush();
pbeKeySpec = new PBEKeySpec(readPasswd(System.in));
keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec);
// Create PBE Cipher
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
// Initialize PBE Cipher with key and parameters
pbeCipher.init(Cipher.ENCRYPT_MODE, pbeKey, pbeParamSpec);
// Our cleartext
byte[] cleartext = "This is another example".getBytes();
// Encrypt the cleartext
byte[] ciphertext = pbeCipher.doFinal(cleartext);
다른 알고리즘 같은 페이지에서 다시
.정말, 나는 당신이 < > 그리고 < 암호화 > 또는 PBEWith <PRF> 그리고 < 암호화 >을 소화 아마 당신은 다른 질문에 대답 할뿐만 아니라, 모든 것을 읽어
PBEWith 추천 : 비밀 키를 PKCS # 5 암호 기반 암호화와 함께 사용하기위한 팩토리. < 다이제스트 >은 메시지 다이제스트입니다. <prf>은 의사 랜덤 함수이고 < 암호화 >은 암호화 알고리즘입니다. 예 : PBEWithMD5AndDES (PKCS # 5, v 1.5) 및 PBEWithHmacSHA1AndDESede (PKCS # 5, v 2.0). 참고 :이 두 가지 모두 각 암호 문자의 하위 8 비트 만 사용합니다.
안녕하세요. 답장을 보내 주셔서 감사합니다. 나는 실제로 AES를 사용하고 있습니다. 나는 문서에서 AES와 관련된 알고리즘을 찾지 못했습니다. PBEWithMD5AndAES와 같은 것을 아십니까? – javaMan
오늘 MD5를 사용하고 싶지는 않습니다. – Puppy
@DeadMG 당신 말이 맞습니다. 하지만 그것은 나를위한 요구 사항입니다. – javaMan