<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Guardant &mdash; Строковый вектор инициализации]]></title>
		<link>https://forum.guardant.ru/topic/18/</link>
		<atom:link href="https://forum.guardant.ru/feed/rss/topic/18" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Строковый вектор инициализации».]]></description>
		<lastBuildDate>Mon, 26 Dec 2011 09:08:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/620/#p620</link>
			<description><![CDATA[<p>После двухнедельной переписке с тех.поддержкой, особая благодарность Антону Тихиенко, пишу как правильно нужно было конвертировать строку unicode в переменную типа long:<br /></p><div class="codebox"><pre><code>UnicodeEncoding unicode = new UnicodeEncoding();
Byte[] b1 = unicode.GetBytes(sKey);
Int64 InitVectorGS2 = System.BitConverter.ToInt64(b1, 0); </code></pre></div><p>где sKey - вектор инициализации типа string.</p>]]></description>
			<author><![CDATA[null@example.com (Dmitriy)]]></author>
			<pubDate>Mon, 26 Dec 2011 09:08:01 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/620/#p620</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/607/#p607</link>
			<description><![CDATA[<p>Алексей, здравствуйте, старая проблема дала о себе знать вновь. <br />В предыдущий раз вопрос решился путем преобразования вектора инициализации в Unicode&nbsp; и использования первых 8-ми байт в GrdCrypt(). Так случилось, что в качестве вектора инициализации были выбраны 4 идентичных символа, как в данном посте так и в некотором количестве случаев в наших проектах. По чистой случайности вчера был сгенерирован вектор, состоящий из 4 различных чисел: <strong>3556</strong>. Согласно решению, это значение было преобразовано в Unicode:<strong>0x0033003500350036</strong> это значение и передалось в&nbsp; GrdCrypt() - <span class="bbu">ожидаемое расшифрованное значение оказалось неверным</span>. <br />Начал разбираться, нашел закономерность: если все числовые символы вектора инициализации идентичны:&quot;1111&quot;(<em>Unicode:0x0031003100310031</em>),&quot;2222&quot;(<em>Unicode:0x0032003200320032</em>),&quot;3333&quot;(<em>Unicode:0x0033003300330033</em>),........&quot;9999&quot;(<em>Unicode:0x0039003900390039</em>) - расшифрованное значение корректно, в остальных случаях расшифровка возвращает неверный результат, вопрос, почему, как это можно объяснить?</p>]]></description>
			<author><![CDATA[null@example.com (Dmitriy)]]></author>
			<pubDate>Thu, 08 Dec 2011 21:14:23 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/607/#p607</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/476/#p476</link>
			<description><![CDATA[<div class="quotebox"><cite>Алексей Перепелов пишет:</cite><blockquote><p>в Rad-студии и Delphi 7 компилировался один и тот же исходник. Результаты разные.</p></blockquote></div><p>Не мудрено, ведь в RAD 2010 string уже 2-х байтовый юникод.</p>]]></description>
			<author><![CDATA[null@example.com (IMT)]]></author>
			<pubDate>Sun, 09 Oct 2011 18:12:54 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/476/#p476</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/149/#p149</link>
			<description><![CDATA[<p>Теперь все однозначно ясно, еще раз хочу поблагодарить Вас за помощь в решения данной проблемы.<br /></p><div class="quotebox"><cite>Алексей Перепелов пишет:</cite><blockquote><p>2. Написал. А с ним разве что-то не так?</p></blockquote></div><p>сам алгоритм интересен,никогда не приходилось конвертировать строку в число, чтобы конвертируемое значение и результат были эквивалентными.</p>]]></description>
			<author><![CDATA[null@example.com (Dmitriy)]]></author>
			<pubDate>Thu, 19 May 2011 08:32:00 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/149/#p149</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/147/#p147</link>
			<description><![CDATA[<p>1.</p><p>ACSII:<br /></p><div class="codebox"><pre><code>&#039;1&#039; == 0x31
&#039;\0&#039; == 0x00
&quot;11111111&quot; == 0x31 0x31 0x31 0x31 0x31 0x31 0x31 0x31 0x00
&quot;1\01\01\01\0&quot; == 0x31 0x00 0x31 0x00 0x31 0x00 0x31 0x00 0x00 </code></pre></div><p>unicode:<br /></p><div class="codebox"><pre><code>&#039;1&#039; == 0x0031 == 0x31 0x00 
&quot;1111&quot; == 0x31 0x00 0x31 0x00 0x31 0x00 0x31 0x00 0x00 0x00 </code></pre></div><p>Int64:<br /></p><div class="codebox"><pre><code>0x0031003100310031 == 0x31 0x00 0x31 0x00 0x31 0x00 0x31 0x00</code></pre></div><p>2. Написал. А с ним разве что-то не так?</p>]]></description>
			<author><![CDATA[null@example.com (Алексей Перепелов)]]></author>
			<pubDate>Thu, 19 May 2011 08:07:41 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/147/#p147</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/146/#p146</link>
			<description><![CDATA[<div class="quotebox"><cite>Алексей Перепелов пишет:</cite><blockquote><p>Int64 initVectorGS2 = 0x0031003100310031</p></blockquote></div><p>Наконец расшифровалась строка!!!!! Огромнейшая благодарность от нашей команды разработчиков! Остались некоторые неясности:<br /><strong>1-</strong> &quot;1&quot; в unicode это 0031 - вопросов тут нет.<br />Не могу найти логику преобразования <em>11111111</em> = <em>1\01\01\01\0</em> or <em>0x0031003100310031</em>???<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |________________________________|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;V&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;каким образом&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; получаются такие форматы значений?<br />вариант с видом &quot;0031003100310031&quot; - вектор 8ми байтный, но unicode каждый символ 2-ух байтный,выходит используем 1-е 4 символа, не ясно тогда как Вы пришли к виду &quot;1\01\01\01\0&quot;?<br /><strong>2-</strong>откуда Вы взяли алгоритм по преобразованию строки в int64 (Int64 result = v[0] * ((Int64)1 &lt;&lt; 0) + v[1] * ((Int64)1 &lt;&lt; 8) + v[2] * ((Int64)1 &lt;&lt; 16) + v[3] * ((Int64)1 &lt;&lt; 24) + v[4] * ((Int64)1 &lt;&lt; 32) + v[5] * ((Int64)1 &lt;&lt; 40) + v[6] * ((Int64)1 &lt;&lt; 48) + v[7] * ((Int64)1 &lt;&lt; 56);)?</p>]]></description>
			<author><![CDATA[null@example.com (Dmitriy)]]></author>
			<pubDate>Wed, 18 May 2011 14:24:24 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/146/#p146</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/140/#p140</link>
			<description><![CDATA[<p>Дмитрий,<br />когда я говорил о том, как выглядит юникод строка из единиц, я имел в виду ее представление в памяти.<br />Вместо использования FromStringToInt64(&quot;1\01\01\01\0&quot;) можете сразу присвоить Int64 initVectorGS2 = 0x0031003100310031.</p><p>Более длинным (как Ваш unicodeVector) делать вектор инициализации не имеет смысла, так как реально используются только первые 8 байт (согласно документации).</p><p>Что касается других вопросов по программированию, то лучше чем я ответы на них подскажет MSDN.</p>]]></description>
			<author><![CDATA[null@example.com (Алексей Перепелов)]]></author>
			<pubDate>Wed, 18 May 2011 11:35:39 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/140/#p140</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/139/#p139</link>
			<description><![CDATA[<div class="quotebox"><cite>Алексей Перепелов пишет:</cite><blockquote><p>...выглядит как 0x31 0x00 0x31 0x00 0x31 0x00 ....</p></blockquote></div><p>нужно было еще в 16-ый вид перевести:<br /></p><div class="codebox"><pre><code>.......
            string unicodeVector = &quot;&quot;;
            UnicodeEncoding unicode = new UnicodeEncoding();
            Byte[] b = unicode.GetBytes(sInitVector);
            foreach (byte bb in b)
            {
                unicodeVector = unicodeVector + string.Format(&quot;{0:x}&quot;, bb);//получаем 16-ное представление unicoda
            }
...........</code></pre></div><p>в итоге получаем <strong>unicodeVector=310310310310310310310310</strong>, перед расшифровкой данных передаем его в FromStringToInt64(), где получаем исключение в строке: </p><div class="codebox"><pre><code>.....e.GetBytes(szInitVectorGS2, 0, szInitVectorGS2.Length, v, 0);.......</code></pre></div><p><em>Буфер выходных байт не достаточен для хранения закодированных данных, <br />кодирование &quot;US-ASCII&quot; резерв &quot;System.Text.EncoderReplacementFallback&quot;.<br />Имя параметра: bytes</em></p>]]></description>
			<author><![CDATA[null@example.com (Dmitriy)]]></author>
			<pubDate>Wed, 18 May 2011 11:19:47 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/139/#p139</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/135/#p135</link>
			<description><![CDATA[<p>Нет, Дмитрий, Вы не правы.</p><p>Строка &quot;11111111&quot; в unicode выглядит как 0x31 0x00 0x31 0x00 0x31 0x00 ....</p><p>См. <a href="http://www.tamasoft.co.jp/en/general-info/unicode.html">таблицу символов unicode</a>.</p>]]></description>
			<author><![CDATA[null@example.com (Алексей Перепелов)]]></author>
			<pubDate>Wed, 18 May 2011 10:37:02 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/135/#p135</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/133/#p133</link>
			<description><![CDATA[<div class="quotebox"><cite>Алексей Перепелов пишет:</cite><blockquote><p>.......unicode-строкой (или, для очевидности, &quot;1\01\01\01\0&quot;)</p></blockquote></div><p>&quot;11111111&quot; в юникоде &quot;4949494949494949&quot;, как Вы получили из &quot;11111111&quot;-&gt; &quot;1\01\01\01\0&quot; ?</p>]]></description>
			<author><![CDATA[null@example.com (Dmitriy)]]></author>
			<pubDate>Wed, 18 May 2011 10:27:13 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/133/#p133</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/129/#p129</link>
			<description><![CDATA[<p>Судя по всему, решение найдено.</p><p>Дело в том, что в Embarcadero RAD Studio строки кодируются в unicode. Соответственно, в нашем случае, для корректного расшифрования в C# вектор &quot;11111111&quot; должен быть представлен unicode-строкой (или, для очевидности, &quot;1\01\01\01\0&quot;)</p><p>Попробуйте так:<br /></p><div class="codebox"><pre><code>            Int64 initVectorGS2 = FromStringToInt64(&quot;1\01\01\01\0&quot;);
            RetCode = GrdApi.GrdCrypt(GrdHandle,
                                               GrdAN.GSII64,
                                               bArr,
                                               (UInt32)GrdAM.OFB + (UInt32)GrdAM.Decode,
                                               initVectorGS2);</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Алексей Перепелов)]]></author>
			<pubDate>Wed, 18 May 2011 09:27:39 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/129/#p129</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/125/#p125</link>
			<description><![CDATA[<p>Письмо получил. Завтра задам вопрос коллегам. Может чего и придумаем.</p>]]></description>
			<author><![CDATA[null@example.com (Алексей Перепелов)]]></author>
			<pubDate>Tue, 17 May 2011 16:17:53 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/125/#p125</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/124/#p124</link>
			<description><![CDATA[<p>Не ясная ситуация конечно, можно ли как-то поставить эту проблему на повестку дня, официально получить ответ от Guardant, как можно решит данный вопрос.<br /><strong>P.S.</strong>Более детально о нашем проекте я написал Вам в письме и отправил на hotline@guardant.ru с темой &quot;для Алексея Перепелова&quot;</p>]]></description>
			<author><![CDATA[null@example.com (Dmitriy)]]></author>
			<pubDate>Tue, 17 May 2011 16:06:07 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/124/#p124</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/123/#p123</link>
			<description><![CDATA[<p>Дмитрий,</p><p>Предполагаю, что Вы используете Embarcadero RAD Studio 2010 (или что-то подобное).</p><p>Если так, то судя по всему, проблема в компиляторе&nbsp; (или настройках компилятора/отладчика). </p><p>Пробовал зашифровать &quot;test&quot; в C++, C# и Delphi 7 - получил 150 188 22 208 229 124 23 192<br />Тот же код шифрования &quot;test&quot; в RAD Studio 2010 выдает 246 58 75 196 231 189 225 186</p><p>Вряд ли я ошибся в коде, так как, в частности, в Rad-студии и Delphi 7 компилировался один и тот же исходник. Результаты разные.</p><p>Я как-то встречался уже раньше с подобным &quot;своеволием&quot; приложения, собранного в Rad-студии. Однако тогда не было времени разбираться. В результате пришлось компилировать все в Delphi 7.</p><p>Попробуйте Delphi 7. Если заработает - хорошо. И если вдруг поймете, что нужно Rad-студии для нормальной работы - буду рад, если поделитесь.</p>]]></description>
			<author><![CDATA[null@example.com (Алексей Перепелов)]]></author>
			<pubDate>Tue, 17 May 2011 15:30:26 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/123/#p123</guid>
		</item>
		<item>
			<title><![CDATA[Re: Строковый вектор инициализации]]></title>
			<link>https://forum.guardant.ru/post/122/#p122</link>
			<description><![CDATA[<div class="quotebox"><cite>Dmitriy пишет:</cite><blockquote><div class="quotebox"><cite>romik пишет:</cite><blockquote><p>Объявляйте переменную, присваивайте ей символьное значение, и используйте эту переменную в качестве параметра GrdCrypt.</p></blockquote></div><p>Уважаемый Михаил,просьба <span class="bbu">внимательно прочитать</span> мой первый пост. Не думаю,что есть смысл на этом форуме писать ради того, чтобы писать, тут нет рейтингов и тому подобных статистических вещей. Этот форум -&nbsp; место, где можно обменяться опытом и обсудить вопросы.</p></blockquote></div><p>Извините что пытался помочь, отвечая на заданый мне вопрос &quot;как все же быть с корректной декодировкой строки с символьным вектором?&quot;. Больше не буду.</p>]]></description>
			<author><![CDATA[null@example.com (romik)]]></author>
			<pubDate>Tue, 17 May 2011 14:02:10 +0000</pubDate>
			<guid>https://forum.guardant.ru/post/122/#p122</guid>
		</item>
	</channel>
</rss>
