sourcetip

노드JS: base64 인코딩된 문자열을 다시 이진으로 디코딩하는 방법은 무엇입니까?

fileupload 2023. 5. 18. 21:27
반응형

노드JS: base64 인코딩된 문자열을 다시 이진으로 디코딩하는 방법은 무엇입니까?

저는 salt로 비밀번호 해싱을 구현하고 있었기 때문에 salt를 바이너리로 생성하고, 비밀번호를 해시하고, base64를 인코딩하여 salt를 데이터베이스에 저장했습니다.

이제 암호를 확인할 때 소금을 다시 이진 데이터로 디코딩하여 제공된 암호를 해시하고 base64에서 결과를 인코딩하여 데이터베이스에 있는 것과 일치하는지 확인해야 합니다.

문제는 소금을 다시 이진 데이터로 해독하는 방법을 찾을 수 없다는 것입니다.Buffer.toString 메서드를 사용하여 인코딩했지만 역기능이 없는 것 같습니다.

Node.js v6.0.0에서 생성자 메서드는 더 이상 사용되지 않으며 대신 base64 인코딩 문자열에서 새 버퍼를 생성하기 위해 다음 방법을 사용해야 합니다.

var b64string = /* whatever */;
var buf = Buffer.from(b64string, 'base64'); // Ta-da

Node.js v5.11.1 이하의 경우

새 구성Buffer두 번째 인수로 전달합니다.

var b64string = /* whatever */;
var buf = new Buffer(b64string, 'base64'); // Ta-da

만약 당신이 깨끗해지고 싶다면, 당신은 확인할 수 있습니다.from존재:

if (typeof Buffer.from === "function") {
    // Node 5.10+
    buf = Buffer.from(b64string, 'base64'); // Ta-da
} else {
    // older Node versions, now deprecated
    buf = new Buffer(b64string, 'base64'); // Ta-da
}

언급URL : https://stackoverflow.com/questions/14573001/nodejs-how-to-decode-base64-encoded-string-back-to-binary

반응형