해시란 임의 길이의 바이너리 문자열을 고정 길이의 바이너리 문자열로 매핑하는 방법을 말합니다. 매핑 규칙은 해시 알고리즘이라고도 합니다. 해시 알고리즘은 암호화, 데이터 무결성 확인, 해시 테이블 조회와 같은 응용 프로그램에 자주 사용됩니다.
Go 언어(golang)는 다음을 포함한 다양한 해시 알고리즘의 구현을 제공하는 표준 라이브러리에 해시 패키지를 제공합니다.
과 같은 체크섬 알고리즘
MD5
MD5(Message-Digest Algorithm 5, 메시지 다이제스트 알고리즘의 5번째 버전)는 일반적인 해시 알고리즘으로, 출력 결과는 일반적으로 32비트 16진수로 표시됩니다. golang에서는 hash 패키지의 md5.New() 메서드를 통해 md5 해시 객체를 얻고, Write 메서드를 사용하여 해시할 데이터를 해시 객체에 쓸 수 있습니다. 마지막으로 계산된 해시값은 Sum 메소드를 통해 얻을 수 있다. 다음은 샘플 코드입니다.package main import ( "crypto/md5" "fmt" ) func main() { data := []byte("example data") hash := md5.Sum(data) fmt.Printf("%x", hash) }
7f808d6e58805c6bbfd1eb6b2f06991a
SHA1
SHA1(보안 해시 알고리즘의 첫 번째 버전인 보안 해시 알고리즘 1)은 비교적 안전한 해시 알고리즘이며, 출력 결과는 일반적으로 40비트 16진수로 표시되는 160비트 이진 문자열입니다. golang에서는 hash 패키지의 sha1.New() 메소드를 통해 sha1 해시 객체를 얻고, Write 메소드를 사용하여 해시할 데이터를 해시 객체에 쓸 수 있습니다. 마지막으로 계산된 해시값은 Sum 메소드를 통해 얻을 수 있다. 다음은 샘플 코드입니다.package main import ( "crypto/sha1" "fmt" ) func main() { data := []byte("example data") hash := sha1.Sum(data) fmt.Printf("%x", hash) }
ee5a3dd464a36f28cd1f2ff8405348d7a48112d6
SHA256
SHA256(Secure Hash Algorithm 256, Secure Hash Algorithm version 256)은 보다 안전한 해시 알고리즘입니다. 256비트 이진 문자열, 일반적으로 64비트 16진수로 표시됩니다. golang에서는 hash 패키지의 sha256.New() 메서드를 통해 sha256 해시 객체를 얻고, Write 메서드를 사용하여 해시할 데이터를 해시 객체에 쓸 수 있습니다. 마지막으로 계산된 해시값은 Sum 메소드를 통해 얻을 수 있다. 샘플 코드는 다음과 같습니다.package main import ( "crypto/sha256" "fmt" ) func main() { data := []byte("example data") hash := sha256.Sum256(data) fmt.Printf("%x", hash) }
9b64dd6a22a2d1f2850835a089a58fbd572d8399f22b97d73a5e7dd2c2ae9307
SHA512
SHA512(Secure Hash Algorithm 512, Secure Hash Algorithm version 512)는 가장 안전한 해시 알고리즘 중 하나이며 해당 출력은 결과는 512비트 이진 문자열이며 일반적으로 128비트 16진수로 표시됩니다. golang에서는 hash 패키지의 sha512.New() 메서드를 통해 sha512 해시 객체를 얻고, Write 메서드를 사용하여 해시할 데이터를 해시 객체에 쓸 수 있습니다. 마지막으로 계산된 해시값은 Sum 메소드를 통해 얻을 수 있다. 다음은 샘플 코드입니다.package main import ( "crypto/sha512" "fmt" ) func main() { data := []byte("example data") hash := sha512.Sum512(data) fmt.Printf("%x", hash) }
22a0c871d16be5f7dafa984087bfe0e0694fcc9a0daeff1f76fcd50445ce40ba7a45dbb13a3d0bba593bf813c368b4c14354faf7ea5718c2907f93bffb2c1253
CRC32
CRC32(Cyclic Redundancy Check 32, 순환 중복 검사 32비트)는 데이터의 무결성을 확인하는 데 사용되는 체크섬 알고리즘입니다. 출력 결과는 일반적으로 8자리 16진수로 표시되는 32비트 이진 문자열입니다. golang에서는 hash 패키지의 crc32.NewIEEE() 메소드를 통해 crc32 해시 객체를 얻을 수 있으며, Write 메소드를 사용하여 해시할 데이터를 해시 객체에 쓸 수 있습니다. 마지막으로 계산된 해시값은 Sum 메소드를 통해 얻을 수 있다. 다음은 샘플 코드입니다.package main import ( "fmt" "hash/crc32" ) func main() { data := []byte("example data") hash := crc32.ChecksumIEEE(data) fmt.Printf("%x", hash) }
f1ade6eb
Adler32
Adler32의 출력 결과는 일반적으로 8자리 16진수 숫자 표현을 사용하는 32비트 이진 문자열입니다. . golang에서는 hash 패키지의 adler32.New() 메소드를 통해 adler32 해시 객체를 얻을 수 있으며, Write 메소드를 사용하여 해시할 데이터를 해시 객체에 쓸 수 있습니다. 마지막으로 계산된 해시값은 Sum 메소드를 통해 얻을 수 있다. 다음은 샘플 코드입니다.package main import ( "fmt" "hash/adler32" ) func main() { data := []byte("example data") hash := adler32.Checksum(data) fmt.Printf("%x", hash) }
142113ca
Blake2b
Blake2b는 최신 해싱 알고리즘입니다. 일반적인 결과는 256비트, 384비트 및 384비트입니다. 512비트. golang에서는 hash 패키지의 blake2b.New256(), blake2b.New384(), blake2b.New512() 메소드를 통해 해당 길이의 blate2b 해시 객체를 얻을 수 있으며, Write 메소드를 사용하여 해싱할 데이터를 쓸 수 있습니다. 해시 개체에 넣습니다. 마지막으로 계산된 해시값은 Sum 메소드를 통해 얻을 수 있다. 샘플 코드는 다음과 같습니다.package main import ( "fmt" "golang.org/x/crypto/blake2b" ) func main() { data := []byte("example data") hash256 := blake2b.Sum256(data) hash384 := blake2b.Sum384(data) hash512 := blake2b.Sum512(data) fmt.Printf("%x %x %x", hash256, hash384, hash512) }
d852969b47e35f938f9f0ca05f2d3ca9f965b085e6c35d4ec5dbd6d2df4475d9 75bdbe670d92c40a2e62c753bd241f3181f191a5c70fd715d8a5e341a45b607e0f0c342c1df2b4ecb103d1dee066ef2d 8f87a4e71bde7c58c9ecc1c2c8d7bb93805d378854a496b13a5bbdaf01c138bdd01fe265ff0550c7219362918f451422c8aa738f4a0517a8d4416b7c2653c403
SHA3
SHA3(Secure Hash Algorithm 3, Secure Hash Algorithm version 3)은 출력 결과 길이를 사용자 정의할 수 있는 또 다른 최신 해싱 알고리즘입니다. 더 일반적인 것은 256비트와 512비트입니다. golang에서는 hash 패키지의 sha3.New256(), sha3.New512() 메소드를 통해 해당 길이의 sha3 해시 객체를 얻을 수 있으며, Write 메소드를 사용하여 해시할 데이터를 해시 객체에 쓸 수 있습니다. 마지막으로 계산된 해시값은 Sum 메소드를 통해 얻을 수 있다. 다음은 샘플 코드입니다. 🎜package main import ( "fmt" "golang.org/x/crypto/sha3" ) func main() { data := []byte("example data") hash256 := sha3.Sum256(data) hash512 := sha3.Sum512(data) fmt.Printf("%x %x", hash256, hash512) }
992f61da74e7f165b6825ba7b92ea5e119f7f4da612a7fa3024bddda7c2b45f4 266dbb94654e7c4d3493f3f88f5aff2d13601aeff862a8195aaf2caa16e7b3cb35f0b91d6f3c44f9b1dfeca28da40282caf1a2e8d5ed18a6ebf858adcce4813d
위 내용은 Golang은 해시를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!