LYnLab

소개블로그취미로그

각 프로그래밍 언어별 문자열을 해싱하는 방법

각 프로그래밍 언어별 문자열을 해싱하는 방법

2019-04-22#프로그래밍

💡 이 글은 작성된지 1년 이상 지났습니다. 정보글의 경우 최신 내용이 아닐 수 있음에 유의해주세요.

아래는 각 프로그래밍 언어별로 주어진 문자열을 SHA-512 알고리즘으로 해싱하는 예제 코드입니다.

Python

import hashlib

message = "my_message_to_hash"

m = hashlib.sha512()
m.update(message.encode())
print(m.hexdigest())

NodeJS

const crypto = require('crypto');

const message = 'my_message_to_hash';

const hash = crypto.createHash('sha512');
hash.update(message, 'utf-8');
console.log(hash.digest('hex'))

Java

import java.math.BigInteger;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


public class HashExample {
    public static void main(String args[]) throws NoSuchAlgorithmException, UnsupportedEncodingException {
        String message = "my_message_to_hash";
                
        MessageDigest md = MessageDigest.getInstance("SHA-512");
        md.update(message.getBytes("utf8"));
        String hexDigest = String.format("%040x", new BigInteger(1, md.digest()));

        System.out.println(hexDigest);
    }
}

C#

using System;
using System.Text;
using System.Security.Cryptography;

public class HashExample {
    public static void Main() {
        string message = "my_message_to_hash";
                
        SHA512 sha512 = SHA512.Create();
        byte[] queryHashByteArray = sha512.ComputeHash(Encoding.UTF8.GetBytes(message));
        string queryHash = BitConverter.ToString(queryHashByteArray).Replace("-", "").ToLower();
                
        Console.WriteLine(queryHash);
    }
}

관련된 글

Rails와 GitHub Actions에 커버리지 레포트를 달아보자

이 블로그의 CMS이기도 한 Shiori를 대폭 리팩토링하면서 테스트가 얼마나 잘 작성되어있는지 궁금해졌습니다.

Rails Global ID로 전역 객체 식별하기

Global ID는 Rails의 모든 객체를 식별할 수 있는 URI(Uniform Resource Identifier)입니다.

Ruby on WebAssembly: 살짝 맛보기

Ruby 3.2에 추가된 WebAssembly 지원을 간단하게 테스트해봅시다.

작성한 댓글은 giscus를 통해 GitHub Discussion에 저장됩니다.

크리에이티브 커먼즈 라이선스크리에이티브 커먼즈 저작자표시크리에이티브 커먼즈 동일조건변경허락

본 사이트의 저작물은 별도의 언급이 없는 한 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

© 2011 - 2024 Hoerin Doh, All rights reserved.

LYnLab 로고About MeGitHubTwitterInstagram