Модуль:Hash/doc: различия между версиями

Материал из Тептар — свободной энциклопедии
Перейти к навигации Перейти к поиску
(Новая страница: «Предоставляет доступ к функции хеширования Scribunto. Ис...»)
 
Нет описания правки
 
Строка 6: Строка 6:
{{optp/comment}}{{^|1em}}
{{optp/comment}}{{^|1em}}


<code style="color: {{optp/color}};">''алгоритм хеширования''</code> по умолчанию — <code>fnv164</code> ([[#Технические детали|подробнее]]).
<code class="ts-templateCallCode-weak">''алгоритм хеширования''</code> по умолчанию — <code>fnv164</code> ([[#Технические детали|подробнее]]).


Список доступных алгоритмов хеширования на ноябрь 2017 года (это те же алгоритмы, что доступны в функции [http://php.net/manual/ru/function.hash.php hash()] PHP 5.4; их список возвращает функция [http://php.net/manual/ru/function.hash-algos.php hash_algos()]):
Список доступных алгоритмов хеширования на ноябрь 2017 года (это те же алгоритмы, что доступны в функции [http://php.net/manual/ru/function.hash.php hash()] PHP 5.4; их список возвращает функция [http://php.net/manual/ru/function.hash-algos.php hash_algos()]):


<pre>"adler32", "crc32", "crc32b", "fnv132", "fnv164", "fnv1a32", "fnv1a64", "gost", "haval128,3", "haval128,4", "haval128,5", "haval160,3", "haval160,4", "haval160,5", "haval192,3", "haval192,4", "haval192,5", "haval224,3", "haval224,4", "haval224,5", "haval256,3", "haval256,4", "haval256,5", "joaat", "md2", "md4", "md5", "ripemd128", "ripemd160", "ripemd256", "ripemd320", "sha1", "sha224", "sha256", "sha3-224", "sha3-256", "sha3-384", "sha3-512", "sha384", "sha512", "snefru", "tiger128,3", "tiger128,4", "tiger160,3", "tiger160,4", "tiger192,3", "tiger192,4", "whirlpool"</pre>
{{#tag:pre|{{#invoke:Hash|list}}}}


== Примеры ==
== Примеры ==
* <code><nowiki>{{#invoke:Hash|main|Строка}}</nowiki></code> → {{#invoke:Hash|main|Строка}}
* {{demo|<nowiki>{{#invoke:Hash|main|Строка}}</nowiki>}}
* <code><nowiki>{{#invoke:Hash|main|Другая строка}}</nowiki></code> → {{#invoke:Hash|main|Другая строка}}
* {{demo|<nowiki>{{#invoke:Hash|main|Другая строка}}</nowiki>}}
* <code><nowiki>{{#invoke:Hash|main|Строка|crc32}}</nowiki></code> → {{#invoke:Hash|main|Строка|crc32}}
* {{demo|<nowiki>{{#invoke:Hash|main|Строка|crc32}}</nowiki>}}
* <code><nowiki>{{#invoke:Hash|main|Строка|crc32b}}</nowiki></code> → {{#invoke:Hash|main|Строка|crc32b}}
* {{demo|<nowiki>{{#invoke:Hash|main|Строка|crc32b}}</nowiki>}}
* <code><nowiki>{{#invoke:Hash|main|Строка|md5}}</nowiki></code> → {{#invoke:Hash|main|Строка|md5}}
* {{demo|<nowiki>{{#invoke:Hash|main|Строка|md5}}</nowiki>}}
* <code><nowiki>{{#invoke:Hash|main|Строка|unknown_algorithm}}</nowiki></code> → {{#invoke:Hash|main|Строка|unknown_algorithm}}
* {{demo|<nowiki>{{#invoke:Hash|main|Строка|unknown_algorithm}}</nowiki>}}
* <code><nowiki>{{#invoke:Hash|main}}</nowiki></code> → {{#invoke:Hash|main}}
* {{demo|<nowiki>{{#invoke:Hash|main}}</nowiki>}}


== Технические детали ==
== Технические детали ==

Текущая версия от 16:46, 17 февраля 2022

Предоставляет доступ к функции хеширования Scribunto. Используется, например, в {{sfn}}.

Использование[править код]

{{#invoke:Hash|main|строка|алгоритм хеширования}}

Серым показаны необязательные параметры.

алгоритм хеширования по умолчанию — fnv164 (подробнее).

Список доступных алгоритмов хеширования на ноябрь 2017 года (это те же алгоритмы, что доступны в функции hash() PHP 5.4; их список возвращает функция hash_algos()):

md2; md4; md5; sha1; sha224; sha256; sha384; sha512/224; sha512/256; sha512; sha3-224; sha3-256; sha3-384; sha3-512; ripemd128; ripemd160; ripemd256; ripemd320; whirlpool; tiger128,3; tiger160,3; tiger192,3; tiger128,4; tiger160,4; tiger192,4; snefru; snefru256; gost; gost-crypto; adler32; crc32; crc32b; crc32c; fnv132; fnv1a32; fnv164; fnv1a64; joaat; murmur3a; murmur3c; murmur3f; xxh32; xxh64; xxh3; xxh128; haval128,3; haval160,3; haval192,3; haval224,3; haval256,3; haval128,4; haval160,4; haval192,4; haval224,4; haval256,4; haval128,5; haval160,5; haval192,5; haval224,5; haval256,5

Примеры[править код]

  • {{#invoke:Hash|main|Строка}} → 5e4befd0eef9b1c6
  • {{#invoke:Hash|main|Другая строка}} → 28c485cd54fe4ae3
  • {{#invoke:Hash|main|Строка|crc32}} → 6c7ee3f8
  • {{#invoke:Hash|main|Строка|crc32b}} → b446d853
  • {{#invoke:Hash|main|Строка|md5}} → 68a645142f2a51d88ff468bba38aecb3
  • {{#invoke:Hash|main|Строка|unknown_algorithm}}Алгоритм хеширования unknown_algorithm не поддерживается, или вы неточно указали его имя. Используйте функцию mw.hash.listAlgorithms() для получения списка доступных алгоритмов.
  • {{#invoke:Hash|main}}Не указана строка для хеширования.

Технические детали[править код]

Алгоритм fnv164 выбран в качестве алгоритма по умолчанию из соображений быстродействия (см. en:Fowler–Noll–Vo hash function), 64-битная функция используется для уменьшения вероятности коллизий до пренебрежимо малой величины. Возможно, есть лучшая опция — проверяйте.