2013-08-15 1 views
1

node.js 0.10.12를 사용하고 있습니다. .pem 파일로 로컬에 저장하는 2048 비트 RSA 키 쌍을 생성했습니다.Node.js 내장 암호화 : RSA 암호 해독

노드와 함께 제공되는 기본 'crypto'라이브러리를 사용하여 위에서 언급 한 공개 RSA 키로 암호화 된 데이터 블록을 해독하려고합니다.

내가 여기까지 왔 :

var privateKey = fs.readFileSync('private.pem', { encoding: 'utf8' }); 

var cryptOpt = { key: /* PEM encoded private key */ privKey }; 

var cred = crypto.createCredentials(cryptOpt); 

var rsa = crypto.createDecipheriv('rsa', cred.?key-in-binary-format?, cred.?initialization vector?); 

내가 여기 옳은 길에있어 확실하지 않다.

• 키가 'cred'내부의 바이너리 형식으로 저장된 위치를 알 수 없습니다.

• 초기화 벡터 매개 변수를 무엇으로 넣어야할지 모르겠다.

데이터는 iOS의 표준 라이브러리를 사용하여 암호화됩니다.이 지식은 사용자가 RSA를 사용하여 암호화 할 때 초기화 벡터를 지정할 수 없도록합니다.

나는 Node.js를 암호화 문서에서 많은 지식이나 이해를 추출 할 수 없었던

다음 nodejs에서 일어나는 모든 비대칭 암호화이 아니므로 http://nodejs.org/api/crypto.html

답변

1

, 난 당신이 더 생각 또는 숲에서 잃어버린 적은. RSA로 무엇이든 암호화하려면 다른 라이브러리가 필요합니다. openssl list-cipher-algorithms 설명서에는 crypto.createCipher(algorithm, password)crypto.createCipheriv(algorithm, key, iv)에만 AES 및 DES (등)와 같은 대칭 알고리즘 만 나열됩니다. IV는 일반적으로 대칭 알고리즘에만 사용됩니다. nodejs는 RSA 서명 및 검증을 지원하는 것으로 보입니다.

개발 경로를 계속하기 전에 주제에 대해 더 깊이 생각해 볼 것을 제안합니다.

+0

예 이제 RSA에 대한 기본 지원이 없음을 알았습니다. 문서의 Classes : Cipher/Decipher에 업데이트/최종 호출 만 언급하면 ​​내 뇌에 플래그가 있어야하지만 그렇게하지 않았 음을 알 수 있습니다. 이후 GitHUB URSA에서 해결책을 찾았습니다. 기본 구현이 있습니다. https://github.com/Obvious/ursa – zra