[go] Go 언어에서 사용되는 대표적인 암호화 알고리즘
Go 언어는 많은 암호화 알고리즘들을 지원합니다. 대표적으로 다음과 같은 알고리즘이 있습니다:
- AES (Advanced Encryption Standard)
AES는 대칭키 알고리즘으로, 고급 암호화 표준으로 널리 사용됩니다. Go의 crypto/aes
패키지를 사용하여 AES 암호화를 쉽게 구현할 수 있습니다.
예시 코드:
package main
import (
"crypto/aes"
"crypto/cipher"
)
func main() {
key := []byte("ThisIsASecretKey")
plaintext := []byte("Hello, World!")
block, _ := aes.NewCipher(key)
ciphertext := make([]byte, len(plaintext))
iv := []byte("InitializationVe")
mode := cipher.NewCBCEncrypter(block, iv)
mode.CryptBlocks(ciphertext, plaintext)
}
- RSA (Rivest-Shamir-Adleman)
RSA는 공개키 암호 시스템의 대표적인 알고리즘으로, 공개키와 개인키를 사용하여 안전한 통신을 제공합니다. Go의 crypto/rsa
패키지를 사용하여 RSA 암호화를 구현할 수 있습니다.
예시 코드:
package main
import (
"crypto/rsa"
"crypto/rand"
)
func main() {
privKey, _ := rsa.GenerateKey(rand.Reader, 2048)
message := []byte("Hello, World!")
ciphertext, _ := rsa.EncryptPKCS1v15(rand.Reader, &privKey.PublicKey, message)
}
- SHA-256 (Secure Hash Algorithm 256-bit)
SHA-256은 안전한 해시 알고리즘으로, 주어진 데이터를 고정 길이 해시 값으로 변환합니다. Go의 crypto/sha256
패키지를 사용하여 SHA-256 해싱을 쉽게 구현할 수 있습니다.
예시 코드:
package main
import (
"crypto/sha256"
"fmt"
)
func main() {
data := []byte("Hello, World!")
hash := sha256.Sum256(data)
fmt.Printf("%x\n", hash)
}
Go 언어로의 암호화 알고리즘 구현에 대해 자세히 알아보려면 Go 공식 문서를 참고하세요.