2017. 12. 2. 00:01
반응형

자바스크립트 SHA256 암호화하기 예제

참고사이트: https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest


이 예제를 그대로 블로그 포스팅에 넣어보려고 했는데 무슨 이유에선지 잘 안되는 것 같다.

그래서 전체 코드를 복사해서 html 파일을 만들어서 테스트해야 제대로된 결과가 나온다.



<html>

<head>

<title>SHA-256</title>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

</head>

<body>

<div>결과 : <span id="resultText"></span></div>

<input type="text" placeholder="value 입력" id="inputText"/>

<button id="sha256Button">암호화</button>

<script>

function sha256(str) {

var buffer = new TextEncoder("utf-8").encode(str);

return crypto.subtle.digest("SHA-256", buffer).then(function (hash) {

return hex(hash);

});

}


function hex(buffer) {

var hexCodes = [];

var view = new DataView(buffer);

for (var i = 0; i < view.byteLength; i += 4) {

var value = view.getUint32(i)

var stringValue = value.toString(16)

var padding = '00000000'

var paddedValue = (padding + stringValue).slice(-padding.length)

hexCodes.push(paddedValue);

}

return hexCodes.join("");

}


$(document).ready(function(){

$("#sha256Button").click(function(){

sha256($("#inputText").val()).then(function(digest) {

$("#resultText").text(digest);

});

});

});

</script>

</body>

</html>


반응형