Go k8s 스타일 해시 함수

Jmnote (토론 | 기여)님의 2024년 3월 1일 (금) 18:11 판 (새 문서: ==개요== ;Go k8s 스타일 해시 함수 <syntaxhighlight lang='go' run> package main import ( "encoding/base32" "fmt" "hash/fnv" "strings" ) func k8sHash(s string, n int) st...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

개요

Go k8s 스타일 해시 함수
package main

import (
	"encoding/base32"
	"fmt"
	"hash/fnv"
	"strings"
)

func k8sHash(s string, n int) string {
	h := fnv.New32a()
	h.Write([]byte(s))
	v := h.Sum32()
	e := base32.StdEncoding.EncodeToString([]byte{byte(v >> 24), byte(v >> 16), byte(v >> 8), byte(v)})
	return strings.ToLower(e[:n])
}

func main() {
	s := "Hello, world!"
	fmt.Println("Original string:", s)
	h5 := k8sHash(s, 5)
	fmt.Println("5-character hash:", h5)
	h7 := k8sHash(s, 7)
	fmt.Println("7-character hash:", h7)
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}