[go] go 언어의 공개키 암호화와 해시 함수
1. 공개키 암호화
공개키 암호화는 암호화와 복호화를 위해 두 개의 키, 공개키와 개인키를 사용합니다. 공개키를 통해 암호화된 데이터는 개인키로만 복호화할 수 있습니다.
// 공개키 암호화 예시
package main
import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/pem"
"fmt"
)
func main() {
// 공개키와 개인키 생성
privKey, _ := rsa.GenerateKey(rand.Reader, 2048)
pubKey := &privKey.PublicKey
// 공개키를 pem 형식으로 인코딩
pubKeyBytes := x509.MarshalPKCS1PublicKey(pubKey)
pubKeyPem := pem.EncodeToMemory(&pem.Block{Type: "RSA PUBLIC KEY", Bytes: pubKeyBytes})
// 공개키 출력
fmt.Println(string(pubKeyPem))
}
2. 해시 함수
해시 함수는 임의 크기의 데이터를 고정된 크기의 고유한 값으로 변환하는 데 사용됩니다. 이러한 값은 원본 데이터가 변경되지 않았는지 확인하는 데 유용합니다.
// 해시 함수 예시
package main
import (
"crypto/sha256"
"fmt"
)
func main() {
// 해싱할 데이터
data := []byte("hello")
// SHA-256 해싱
hashed := sha256.Sum256(data)
// 해시값 출력
fmt.Printf("%x\n", hashed)
}
go 언어의 공개키 암호화와 해시 함수를 사용하여 데이터의 보안성을 높일 수 있습니다. 보안에 대한 더 자세한 내용은 Go 언어의 공식 문서를 참고하세요.