키 탄력이 성을 생성, 탄력이 성 지원 PKCS7PADDING
을 수행하지만 난 드릴 수 없습니다 그안드로이드 AES/ECB/PKCS7PADDING 내가 <code>PKCS7</code> 패딩을 지원하지 않습니다 <code>AES/ECB/PKCS7PADDING</code>하지만 자바를 사용하여 임의의 키를 생성 할 내 너 한테 내가이 같은 패딩을 사용할 필요가
내 코드를 사용하여 키를 생성하는 방법을 이해 : 나는 AES에 대한
키 탄력이 성을 생성, 탄력이 성 지원 PKCS7PADDING
을 수행하지만 난 드릴 수 없습니다 그안드로이드 AES/ECB/PKCS7PADDING 내가 <code>PKCS7</code> 패딩을 지원하지 않습니다 <code>AES/ECB/PKCS7PADDING</code>하지만 자바를 사용하여 임의의 키를 생성 할 내 너 한테 내가이 같은 패딩을 사용할 필요가
내 코드를 사용하여 키를 생성하는 방법을 이해 : 나는 AES에 대한
키 생성 패딩과 함께 아무것도 할 필요가 없습니다 이러한 알고리즘의 오류가 발생하고
Security.addProvider(new BouncyCastleProvider());
private byte[] generateSessionKey() throws NoSuchAlgorithmException, NoSuchProviderException {
KeyGenerator kgen = KeyGenerator.getInstance("AES/ECB/PKCS7PADDING", "BC");
kgen.init(SYMMETRIC_KEY_SIZE);
SecretKey key = kgen.generateKey();
return key.getEncoded();
}
. ECB 및 CBC와 같은 일부 작동 모드에는 패딩이 필요합니다. 그러나 키 자체는 패딩을 또는 모드에 의존하지 않습니다. 따라서 다음을 사용해야합니다.
KeyGenerator kgen = KeyGenerator.getInstance("AES", "BC");
의심의 여지없이 작동합니다.
"PKCS7Padding"
에 대한
"PKCS5Padding"
을 대체하지 마십시오.
패딩 메커니즘과 here의 차이점을 이해하려면 here을 Java의 차이점을 살펴보십시오.
안드로이드는 Bouncy Castle 공급자를 사용하고 있었는데 (그것은 SpongyCastle이 삭제 된 이유 중 하나였습니다), Android와 Java SE 공급자의 차이점을 설명 할 것입니다.
동일한 문제 KeyGenerator AES/ECB/PKCS5Padding 구현을 찾지 못했습니다, SpongyCastle을 시도합니다 – GaneshP
@GaneshP : 당신이 쓴 글에 관심을 기울이지 않을 것입니다. –
@JamesKPolk 제 생각에 그것은 오래된 의견이었습니다. 대답을 수락하는 것이 여전히 있습니다. KeyGenerator 주석을 포함하도록 한 번 대답을 변경했습니다. –
어쨌든 ECB를 사용하는 이유는 무엇입니까? http://crypto.stackexchange.com/questions/20941/why-shouldnt-i-use-ecb-encryption?noredirect=1&lq=1 – Michael
요구 사항 algo 목록 중 하나를 바꿀 수 없습니다. – GaneshP