<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Guardant &mdash; кодировка значений типа int алгоритмом AES128]]></title>
		<link>https://forum.guardant.ru/topic/125/</link>
		<atom:link href="https://forum.guardant.ru/feed/rss/topic/125" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «кодировка значений типа int алгоритмом AES128».]]></description>
		<lastBuildDate>Thu, 10 Nov 2011 09:57:13 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: кодировка значений типа int алгоритмом AES128]]></title>
			<link>https://forum.guardant.ru/post/568/#p568</link>
			<description><![CDATA[<p>Здравствуйте, MaximT.</p><p>На всякий случай ниже дублирую ранее отправленный Вам по почте ответ:</p><p><em>Для того чтобы закодировать например целочисленную строку данных необходимо перед шифрованием помещать их в буфер соответствующего типа.</em></p><p><em>Что касается нашего примера из комплекта разработчика, то действительно наблюдается описанная Вами проблема, это является следствием не совсем корректного алгоритма формирования вектора инициализации представленного в данном примере (вектор формируется на основе данных возвращаемых стандартной WinAPI функцией time и в результате иногда могут не совпадать вектора, используемые для шифрования и дешифровки).<br />Если для примера использовать статически заданный вектор (или какой либо иной корректный алгоритм его формирования) то данные всегда будут дешифрованы, верно.</em></p>]]></description>
			<author><![CDATA[null@example.com (Антон Тихиенко)]]></author>
			<pubDate>Thu, 10 Nov 2011 09:57:13 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/568/#p568</guid>
		</item>
		<item>
			<title><![CDATA[кодировка значений типа int алгоритмом AES128]]></title>
			<link>https://forum.guardant.ru/post/559/#p559</link>
			<description><![CDATA[<p>Здравствуйте, </p><p>я недавно начал работать с Вашими ключами и у меня такой вопрос: стандартная структура из примера : <br />в уроках по программированию ключей с помощью алгоритма AES128 (урок 3.2) представлен момент когда мы кодируем char символ.<br />А как я могу закодировать полученное с клавиатуры (или откуда-то еще) значение типа int?</p><br /><p>Кстати, там, в примере, один момент: мы кодируем не то что получили с клавиатуры, а другой массив со значением полученным с клавиатуры и вставленным в середину защищаемых данных:<br /></p><div class="codebox"><pre><code>szMessage[MESSAGE_SIZE / 2] = *q.begin();
// Устанавливаем значение вектора инициализации
memset(pIV, 0, GrdARS_AES128);
time((time_t*)pIV);
if(pIV[0] % 2)
{
    pIV[0]--;
}
// Шифруем массив при помощи алгоритма AES128 в режиме OFB
nRet = GrdDongle.CryptEx(0x0002, sizeof(szMessage), szMessage,
    GrdAM_OFB | GrdAM_Encode, sizeof(pIV), pIV);
if (nRet)
{
        cout &lt;&lt; &quot;GrdCryptEx() encode faild!&quot;;
}</code></pre></div><p>но когда я пытаюсь получить этот же расшифрованный и вытянуть из него то что мы вставили в середину массива<br /></p><div class="codebox"><pre><code>nRet = GrdDongle.CryptEx(0x0002, sizeof(szMessage), szMessage, 
    GrdAM_OFB | GrdAM_Decode, sizeof(pIV), pIV);
if (nRet)
{
    cout &lt;&lt; &quot;GrdCryptEx() decode failed!&quot; &lt;&lt; endl;
}
else
{
*q.begin() = szMessage[MESSAGE_SIZE/2];
.......</code></pre></div><p>я не всегда получаю то что мы приняли с клавиатуры, как с этим бороться?</p>]]></description>
			<author><![CDATA[null@example.com (MaximT)]]></author>
			<pubDate>Thu, 03 Nov 2011 14:32:43 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/559/#p559</guid>
		</item>
	</channel>
</rss>
