컴퓨터
Dart 에서 encryption hash 값 구하기
JNHEO
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으로 표현
누군가에게 도움이 되길 바라며...