Cincang merujuk kepada kaedah memetakan rentetan perduaan panjang arbitrari ke rentetan perduaan panjang tetap Peraturan pemetaan ialah algoritma cincang, juga dikenali sebagai algoritma cincang. Algoritma cincang sering digunakan dalam aplikasi seperti penyulitan, menyemak integriti data dan carian jadual cincang.
Bahasa Go (golang) menyediakan pakej cincang dalam pustaka standard, yang menyediakan pelaksanaan pelbagai algoritma cincang, termasuk yang berikut:
Artikel ini akan memperkenalkan secara terperinci cara untuk Gunakan pakej cincang dalam golang untuk melaksanakan algoritma cincang.
MD5 (Message-Digest Algorithm 5, edisi kelima algoritma message digest) ialah algoritma cincang biasa yang hasil keluarannya ialah 128 bit Rentetan binari, biasanya diwakili dengan nombor perenambelasan 32-bit. Dalam golang, anda boleh mendapatkan objek cincang md5 melalui kaedah md5.New() dalam pakej cincang, dan gunakan kaedah Tulis untuk menulis data yang akan dicincang ke dalam objek cincang. Akhir sekali, nilai cincang yang dikira boleh diperolehi melalui kaedah Sum.
Berikut ialah contoh kod:
package main import ( "crypto/md5" "fmt" ) func main() { data := []byte("example data") hash := md5.Sum(data) fmt.Printf("%x", hash) }
Hasil output ialah:
7f808d6e58805c6bbfd1eb6b2f06991a
SHA1 (Secure Hash Algorithm 1, Algoritma Hash Selamat (Edisi Pertama) ialah algoritma cincang yang agak selamat Hasil keluarannya ialah rentetan perduaan 160-bit, biasanya diwakili oleh nombor heksadesimal 40 digit. Dalam golang, anda boleh mendapatkan objek cincang sha1 melalui kaedah sha1.New() dalam pakej cincang, dan gunakan kaedah Tulis untuk menulis data yang akan dicincang ke dalam objek cincang. Akhir sekali, nilai cincang yang dikira boleh diperolehi melalui kaedah Sum.
Berikut ialah contoh kod:
package main import ( "crypto/sha1" "fmt" ) func main() { data := []byte("example data") hash := sha1.Sum(data) fmt.Printf("%x", hash) }
Hasil output ialah:
ee5a3dd464a36f28cd1f2ff8405348d7a48112d6
SHA256 (Secure Hash Algorithm 256, Secure Hash Algorithm Version 256) ialah algoritma hash yang lebih selamat. Hasil keluarannya ialah rentetan binari 256-bit, biasanya diwakili oleh nombor perenambelasan 64-bit. Dalam golang, anda boleh mendapatkan objek cincang sha256 melalui kaedah sha256.New() dalam pakej cincang, dan gunakan kaedah Tulis untuk menulis data yang akan dicincang ke dalam objek cincang. Akhir sekali, nilai cincang yang dikira boleh diperolehi melalui kaedah Sum.
Berikut ialah contoh kod:
package main import ( "crypto/sha256" "fmt" ) func main() { data := []byte("example data") hash := sha256.Sum256(data) fmt.Printf("%x", hash) }
Hasil output ialah:
9b64dd6a22a2d1f2850835a089a58fbd572d8399f22b97d73a5e7dd2c2ae9307
SHA512 (Secure Hash Algorithm 512, Secure Hash Algorithm versi 512) ialah salah satu daripada algoritma cincang yang paling selamat Hasil keluarannya ialah rentetan binari 512-bit, biasanya diwakili oleh nombor perenambelasan 128-bit. Dalam golang, anda boleh mendapatkan objek cincang sha512 melalui kaedah sha512.New() dalam pakej cincang, dan gunakan kaedah Tulis untuk menulis data yang akan dicincang ke dalam objek cincang. Akhir sekali, nilai cincang yang dikira boleh diperolehi melalui kaedah Sum.
Berikut ialah kod sampel:
package main import ( "crypto/sha512" "fmt" ) func main() { data := []byte("example data") hash := sha512.Sum512(data) fmt.Printf("%x", hash) }
Hasil output ialah:
22a0c871d16be5f7dafa984087bfe0e0694fcc9a0daeff1f76fcd50445ce40ba7a45dbb13a3d0bba593bf813c368b4c14354faf7ea5718c2907f93bffb2c1253
CRC32 (Semakan Lebihan Siklik 32, Pemeriksaan redundansi kitaran (32 bit) ialah algoritma checksum yang digunakan untuk mengesahkan integriti data. Hasil keluaran ialah rentetan binari 32-bit, biasanya diwakili oleh nombor perenambelasan 8 digit. Dalam golang, anda boleh mendapatkan objek cincang crc32 melalui kaedah crc32.NewIEEE() dalam pakej cincang, dan gunakan kaedah Tulis untuk menulis data yang hendak dicincang ke dalam objek cincang. Akhir sekali, nilai cincang yang dikira boleh diperolehi melalui kaedah Sum.
Berikut ialah contoh kod:
package main import ( "fmt" "hash/crc32" ) func main() { data := []byte("example data") hash := crc32.ChecksumIEEE(data) fmt.Printf("%x", hash) }
Hasil keluarannya ialah:
f1ade6eb
Adler32 ialah cek lain. hasil keluaran algoritma jumlah ialah rentetan binari 32-bit, biasanya diwakili oleh nombor perenambelasan 8 digit. Dalam golang, anda boleh mendapatkan objek cincang adler32 melalui kaedah adler32.New() dalam pakej cincang, dan gunakan kaedah Tulis untuk menulis data yang hendak dicincang ke dalam objek cincang. Akhir sekali, nilai cincang yang dikira boleh diperolehi melalui kaedah Sum.
Berikut ialah contoh kod:
package main import ( "fmt" "hash/adler32" ) func main() { data := []byte("example data") hash := adler32.Checksum(data) fmt.Printf("%x", hash) }
Outputnya ialah:
142113ca
Blake2b ialah algoritma Hash yang lebih baharu, hasil keluaran boleh disesuaikan panjangnya, yang biasa ialah 256 bit, 384 bit dan 512 bit. Dalam golang, anda boleh mendapatkan objek cincang blate2b dengan panjang yang sepadan melalui kaedah blake2b.New256(), blake2b.New384() dan blake2b.New512() dalam pakej cincang dan gunakan kaedah Tulis untuk menulis data yang akan dicincang ke dalam objek hash. Akhir sekali, nilai cincang yang dikira boleh diperolehi melalui kaedah Sum.
Berikut ialah contoh kod:
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) }
Hasil output ialah:
d852969b47e35f938f9f0ca05f2d3ca9f965b085e6c35d4ec5dbd6d2df4475d9 75bdbe670d92c40a2e62c753bd241f3181f191a5c70fd715d8a5e341a45b607e0f0c342c1df2b4ecb103d1dee066ef2d 8f87a4e71bde7c58c9ecc1c2c8d7bb93805d378854a496b13a5bbdaf01c138bdd01fe265ff0550c7219362918f451422c8aa738f4a0517a8d4416b7c2653c403
SHA3 (Secure Hash Algorithm 3, Secure Hash Algorithm versi 3) ialah satu lagi algoritma cincangan yang lebih baharu. Panjang hasil keluarannya boleh disesuaikan Yang lebih biasa ialah 256 bit dan 512 bit. Dalam golang, anda boleh mendapatkan objek cincang sha3 dengan panjang yang sepadan melalui kaedah sha3.New256() dan sha3.New512() dalam pakej cincang, dan gunakan kaedah Tulis untuk menulis data yang akan dicincang ke dalam objek cincang. Akhir sekali, nilai cincang yang dikira boleh diperolehi melalui kaedah Sum.
Berikut ialah kod sampel:
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) }
Hasil output ialah:
992f61da74e7f165b6825ba7b92ea5e119f7f4da612a7fa3024bddda7c2b45f4 266dbb94654e7c4d3493f3f88f5aff2d13601aeff862a8195aaf2caa16e7b3cb35f0b91d6f3c44f9b1dfeca28da40282caf1a2e8d5ed18a6ebf858adcce4813d
Atas ialah kandungan terperinci Golang melaksanakan hash. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!