Функция adler32.New
Функция adler32.New создает новый объект для вычисления контрольной суммы
Adler-32. Она возвращает интерфейс hash.Hash32, который можно использовать
для последовательного обновления хеша с помощью метода Write.
Результат вычисления получается через метод Sum32.
Функция не принимает никаких параметров и всегда возвращает новый хеш с начальным
состоянием.
Синтаксис
adler32.New() hash.Hash32
Пример использования
Давайте вычислим контрольную сумму Adler-32 для строки "abcde":
package main
import (
"fmt"
"hash/adler32"
)
func main() {
// Create new Adler-32 hash
h := adler32.New()
// Write data to hash
h.Write([]byte("abcde"))
// Get checksum
res := h.Sum32()
fmt.Println(res)
}
Результат выполнения кода:
917503
Пример с обновлением хеша
Давайте продемонстрируем, как можно обновлять хеш порциями данных:
package main
import (
"fmt"
"hash/adler32"
)
func main() {
// Create new Adler-32 hash
h := adler32.New()
// Write data in parts
h.Write([]byte("abc"))
h.Write([]byte("de"))
h.Write([]byte("fgh"))
// Get checksum
res := h.Sum32()
fmt.Println(res)
}
Результат выполнения кода:
1572864
Пример с пустыми данными
Рассмотрим, что возвращает функция при вычислении хеша для пустой строки:
package main
import (
"fmt"
"hash/adler32"
)
func main() {
// Create new Adler-32 hash
h := adler32.New()
// Write empty data
h.Write([]byte(""))
// Get checksum
res := h.Sum32()
fmt.Println(res)
}
Результат выполнения кода:
1
Смотрите также
-
функцию
adler32.Checksum,
которая вычисляет контрольную сумму Adler-32 за один вызов -
интерфейс
hash.Hash32,
который реализует возвращаемый объект хеша -
функцию
crc32.New,
которая создает хеш CRC-32 для вычисления контрольных сумм -
функцию
fnv.New32,
которая создает хеш FNV-32 с другим алгоритмом хеширования