Go 오브젝트 해시

Jmnote (토론 | 기여)님의 2023년 6월 20일 (화) 19:37 판 (새 문서: ==개요== ;Go 오브젝트 해시 <syntaxhighlight lang='go' run> package main import ( "crypto/sha256" "fmt" ) func main() { fmt.Printf("%x\n", Hash(1)) // 6b86b273ff34fce19...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

개요

Go 오브젝트 해시
package main

import (
	"crypto/sha256"
	"fmt"
)

func main() {
	fmt.Printf("%x\n", Hash(1))   // 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b
	fmt.Printf("%x\n", Hash("1")) // 391552c099c101b131feaf24c5795a6a15bc8ec82015424e0d2b4274a369a0bf

	fmt.Printf("%x\n", Hash([]int{1, 2, 3})) // 87b44392f7d8b57f3c09080ac18bc4e384653dca52cd2aff315eb1bdad0600cc
	fmt.Printf("%x\n", Hash([]int{3, 2, 1})) // f9ec8ca3a31e72858e8ae098d5183898e21822c611f49e8a3d9ece1846bfa96f

	fmt.Printf("%x\n", Hash(map[string]int{"a": 1, "b": 2})) // d43059b1e9f1f2438684b63c53f5a79aec1d3dfea1a47aa92def4bcb476781dd
	fmt.Printf("%x\n", Hash(map[string]int{"b": 2, "a": 1})) // d43059b1e9f1f2438684b63c53f5a79aec1d3dfea1a47aa92def4bcb476781dd
}

func Hash(o interface{}) []byte {
	h := sha256.New()
	fmt.Fprintf(h, "%#v", o)
	return h.Sum(nil)
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}