일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 알고리즘
- docker
- CSS
- 백엔드
- 컴퓨터공학
- k8s
- 솔리디티
- es6
- TypeScript
- 타입스크립트
- react
- 클라우드
- kubernetes
- 프론트엔드
- 이더리움
- AWS
- 리액트
- HTML
- BFS
- 쿠버네티스
- 블록체인
- 웹
- 이슈
- node.js
- JavaScript
- 파이썬
- 자바스크립트
- 백준
- 가상화
- next.js
Archives
- Today
- Total
즐겁게, 코드
keccak256 함수로 난수 생성하기 본문
블럭체인에서 보안은 매우 중요한 문제입니다.
따라서 솔리디티는 keccak256
이라는 강력한 해시 함수를 내장하고 있는데요, 한번 예를 들어 보겠습니다.
(Git의 커밋번호를 생성할 때 쓰는 해시 알고리즘이 SHA-1인데, keccak256은 SHA-3을 사용합니다.)
keccak256("aaaab");
//6e91ec6b618bb462a4a6ee5aa2cb0e9cf30f7a052bb467b0ba58b8748c00d2e5
keccak256("aaaac");
//b1f078126895a1424524de5321b339ab00408010b7cf0e6ed451514981e58aa9
단순히 입력으로 주어진 문자열의 한 문자를 b에서 c로 바꿨을 뿐인데 해시값이 완전히 달라진 모습입니다.
C++ 등 다른 프로그래밍 언어에서는 현재 시각 등 추측할 수 있는 값을 난수의 시드(seed)로 삼는데 반해, keccak256
함수는 난수 충돌이 일어날 확률이 매우 희박한 "안전한 난수" 를 생성해주니, 솔리디티에서는 keccak256
함수를 사용해주시면 됩니다.
반응형
'💬 언어 > Solidity' 카테고리의 다른 글
솔리디티 - 05. Storage와 Memory (0) | 2021.04.16 |
---|---|
솔리디티 - 04. 매핑과 msg.sender (0) | 2021.04.16 |
솔리디티 - 03. 이벤트 (0) | 2021.04.16 |
솔리디티 - 02. 기본 문법 2 (함수) (0) | 2021.04.15 |
솔리디티 - 01. 기본 문법 1 (자료형과 연산) (1) | 2021.04.15 |
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆