2014-01-26 3 views
1

저는 통신을 암호화하기 위해 맞춤 프로토콜을 사용하는 레거시 애플리케이션을 다루고 있습니다. 임의 AES 키는 다음과 같이 기존의 자바 응용 프로그램에서 생성됩니다노드에서 AES 키 생성

keygen = KeyGenerator.getInstance("AES"); 
keygen.init(128); 
keygen.generateKey().getEncoded(); 

내가 행운과 crypto에 솔루션을 찾고 있었어요. 노드에서이 키를 생성하려면 어떻게해야합니까?

답변

0

그 코드는 아마도 생각만큼 많이하지 않을 것입니다. 단순히 16 (128/8) 안전 임의 바이트를 생성 한 다음 키 객체를 감싸줍니다. 따라서 nodejs를 사용하면 16 바이트를 생성하고 알고리즘에 원시 키 데이터를 제공합니다.

생성 된 키를 사용하려는 경우 getEncoded() 메서드에서 반환 한 바이트에서 이진 인코딩 된 문자열 또는 버퍼를 만들어야합니다. 프로세스의 어딘가에서 텍스트 문자열이 필요하면 16 진수 인코딩/디코딩을 사용할 수 있습니다.

자세한 내용은 randomBytes()createCipheriv()을 참조하십시오.

AES 키는 암호 학적으로 강력한 임의의 바이트이며 DES (패리티 비트) 및 RSA (소수 계산) 키는 없습니다.

+0

암호화 키는 단순히 임의의 바이트 이상입니다. http://docs.oracle.com/javase/7/docs/api/java/security/SecureRandom.html –

+0

@JonathanRosenne : 어떻게 * 무작위입니까? –

+0

@JonathanRosenne 좋습니다, "암호로 강하게"만들었지 만, 첫 번째 단락에 이미 "무작위 무작위"를 넣었습니다 ... –