35
A
답변
48
느리고 계산 상 비싼 해싱을 수행하려는 곳에 bcrypt를 사용하십시오. 일반적으로 공격자가 해시를 되돌릴 수 없도록하려는 해시 용입니다 (예 : 사용자 암호. 그 외 모든 것에 원시 암호화를 사용하십시오. 에서 @ 마이크 - 스콧의 대답에 동반자에서
12
, 당신은 암호와 관련된 물건 bcrypt
을 선호해야하지만 여전히 당신은 작업의 광범위한 crypto
를 사용할 수있는 임의의 토큰 또는 HMAC 체크섬 또는 SHA1은 MD5 해시 /를 만들 좋아 :
var crypto = require('crypto');
// random tokens
var buf = crypto.randomBytes(16).toString('hex');
console.log('Random token of %d bytes in hexadecimal: %s', buf.length, buf);
var buf = crypto.randomBytes(16).toString('base64');
console.log('Random token of %d bytes in base 64: %s', buf.length, buf);
// a hashed message authentication checksum (HMAC) using a shared secret key
var string = 'My coffee please';
var key = 'Right away sir';
var encrypted = crypto.createHmac('sha1', key).update(string).digest('hex');
console.log('Encrypting "%s" using passphrase "%s": %s', string, key, encrypted);
// a MD5 hash
var hashmd5 = crypto.createHash('md5').update(string).digest('hex');
console.log('The MD5 hash of "%s" is %s', string, hashmd5);
// a SHA1 hash
var hashsha1 = crypto.createHash('sha1').update(string).digest('hex');
console.log('The SHA1 hash of "%s" is %s', string, hashsha1);
관련 문제
- 1. Nodejs 스트리밍
- 2. nodejs tls 세션 ID
- 3. NodeJS 모듈 대 클래스
- 4. 에 접속 모듈은 nodeJS
- 5. Nodejs : 헤더를 적용하고 응답받을
- 6. Pylons와 NodeJS/Comet
- 7. NodeJS : 메모리 사용 디버그
- 8. nodejs : 문자열 조작
- 9. NodeJS - 원격 모듈을 사용 하시겠습니까?
- 10. Nodejs, https를 통한 인증 및
- 11. Nodejs, Socket.io 및 Flash의 소켓
- 12. nodejs expressjs gzip json 콘텐츠
- 13. 새로운 nodejs 프로세스를 시작하는 방법
- 14. REST API : nodejs 대 Python
- 15. 함수에서 결과를 반환하십시오 (javascript, nodejs)
- 16. Nodejs - 몽구스-0.0.5 오류 app.js
- 17. Mongoose (Nodejs) 복수화 규칙이란 무엇입니까?
- 18. CommonJS 모듈 (nodejs 포함), strangeness
- 19. MongoDB-Native NodeJS 업데이트가 실패합니다.
- 20. NodeJS 0.3.1 app leaking memory
- 21. NodeJS and node-mongodb-native
- 22. Nodejs : require.paths. 원래 경로 복원
- 23. nodejs - net 또는 http 모듈
- 24. Firefox 암호 데이터베이스 암호 해독
- 25. 파이썬으로 PDF 암호 암호 해독
- 26. 해싱 암호 대 암호 화
- 27. 장고 원시 SQL 내가이 원시 쿼리를 가지고
- 28. PGP ANT를 사용하여 암호 해독
- 29. 원시 POST
- 30. Grails 암호 변경 : "새"암호 만 허용
왜 bcrypt가 더 좋고/더 강한 지 자세히 설명해 주시겠습니까? 나는 그것이 더 강하고 더 긴 해시를 사용한다고 가정한다. 그것은 다른 알고리즘을 사용합니까? 이렇게 두 개의 유사한 암호가 주어지면, 하나는 원시 암호로 해시되고, 하나는 bcrypt로 해시 반전에 소요되는 예상 비용은 무엇입니까? –
Bcrypt는 계산적으로 비싼 키 설정 단계가있는 Blowfish 알고리즘을 사용합니다. 그런 다음 키 설정을 구성 가능한 횟수만큼 반복 할 수 있도록 수정합니다. 일반적으로 현재는 4,096과 비슷하지만 하드웨어가 더 강력 해짐에 따라 키 수를 늘릴 수 있습니다. 따라서 bcrypt와 일반 해시 간의 역방향 해시의 차이점은 bcrypt 구성에 따라 다릅니다. –