<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Преобразование текста в хэш]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=17608</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17608&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Преобразование текста в хэш».]]></description>
		<lastBuildDate>Wed, 15 Feb 2023 18:32:20 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Преобразование текста в хэш]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=156822#p156822</link>
			<description><![CDATA[<p>Хешируется не строка, а данные (байты). Строку можно по-разному представить в виде байтов, в зависимости от кодировки. Результирующий хеш представлен не в виде какого-то количества знаков, а количества байтов, которое хеш занимает.<br />Пример простого хеширования:<br /></p><div class="codebox"><pre><code>string := &quot;Hello, World!&quot;
len := StrPutBuff(string, buf)
MsgBox % hashCode(&amp;buf, len, 4)

hashCode(pData, dataLength, hashLength := 4) {
   size := 0
   Loop % hashLength
      size |= 0xFF &lt;&lt; 8*(A_Index - 1)
   hash := 0
   Loop % dataLength
      hash := (31 * hash + *(pData + A_Index - 1)) &amp; size
   Return hash
}

StrPutBuff(str, ByRef buff, encoding := &quot;UTF-8&quot;) {
	VarSetCapacity(buff, len := (StrPut(str, encoding) - 1) &lt;&lt; (encoding ~= &quot;i)^(UTF-16|cp1200)$&quot;))
	StrPut(str, &amp;buff, encoding)
	Return len
}</code></pre></div><p>Здесь хеш занимает 4 байта (последний параметр функции hashCode(). Можно его уменьшить, но с потерей уникальности.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 15 Feb 2023 18:32:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=156822#p156822</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Преобразование текста в хэш]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=156820#p156820</link>
			<description><![CDATA[<p>Добрый вечер. Возможно ли по какому-то алгоритму представить определенный текст/ссылку в виде четырехзначного кода/хеш-суммы?</p>]]></description>
			<author><![CDATA[null@example.com (john_dease)]]></author>
			<pubDate>Wed, 15 Feb 2023 17:29:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=156820#p156820</guid>
		</item>
	</channel>
</rss>
