[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 언어의 공식 문서를 참고하세요.