Dart 에서 encryption hash 값 구하기

2019. 6. 16. 13:31컴퓨터

(나중에 내가 다시보기위한 노트에 가까운 글)

 

JS, PHP등에서는 sha 512등의 encryption 해쉬값을 구하는것이 매우 단순했다.

 

그냥 라이브러리 하나 불러온뒤

sha512(string) 

하나만 해주면 되는데,

Dart에서는 다소 이해를 해야 같은 결과값을 불러올 수 있어 별 생각없이 넘어갈 문제를

오래끌게 되어 간단히 정리한다.

 

우선, 현재로는 Dart 2.0지원하는 업데이트 되는 crypto라이브러리가 "pointycastle"이라는 다소 직관적이지 않은 이름의 라이브러리이다.

(여기서부터 갑자기 불안...)

https://pub.dev/packages/pointycastle

 

pointycastle | Dart Package

A Dart library implementing cryptographic algorithms

pub.dev

 

여기서 필요한것 encryption algo만 가져올수도 있고, 전체를 다 불러올수도있고. (이것은 documentation에 쉽게 나와있음)

 

같은 sha512로 string에 대한 hash값을 구하는 코드 예제는 다음과 같다 :

 

import 'dart:typed_data';
import 'package:convert/convert.dart';  // convert라는 dartpkg. (https://pub.dev/packages/convert)
import 'package:pointycastle/api.dart';

var uint8List = Uint8List.fromList('string'.codeUnits);
var sha512 = Digest("SHA-512").process(uint8List);
var hashStr = hex.encode(sha512); //16진수표기법으로 hash값을 변형하여 string으로 표현 

누군가에게 도움이 되길 바라며...