Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.01.2012, 04:04
wiselord вне форума Посмотреть профиль Отправить личное сообщение для wiselord Найти все сообщения от wiselord
  № 1  
Ответить с цитированием
wiselord

Регистрация: Nov 2011
Сообщений: 13
По умолчанию SHA256

Нужно взять хеш строки любым алгоритмом. Как это сделать на AS3?

Старый 29.01.2012, 04:19
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
В библиотеке as3corelib и SHA256, и другие хеши реализованы.

Старый 29.01.2012, 05:11
wiselord вне форума Посмотреть профиль Отправить личное сообщение для wiselord Найти все сообщения от wiselord
  № 3  
Ответить с цитированием
wiselord

Регистрация: Nov 2011
Сообщений: 13
Напишите, пожалуйста, код, как их использовать )

Добавлено через 17 минут
Я скачал библиотеку com.hurlant.crypto, распаковал в папку проекта и сделал так
Код AS3:
import com.hurlant.crypto.hash.SHA256;
 
function myHash(s:String):String{
// sha.hash() почему-то, вопреки справочнику as3, принимает только тип ByteArray, 
//поэтому создал такую переменную
	var ba:ByteArray = new ByteArray();
	ba.writeUTF(s); // записал в байтовый массив свою строку
	var sha:SHA256 = new SHA256();
// в ту же переменную положил байтовый массив с хешем байтового массива строки )
	ba = sha.hash(ba); 
// в цикле считывал по одному байту из байтового массива и добавлял в строку
// 16ричное представление этого байта...
	for (j = 0,s = ""; j < ba.length; j++){
		ba.position = j;
		s += ba.readByte().toString(16);
	}
	return s;
}
В итоге получается строка 16ричных чисел, причем некоторые из них отрицательны...
Как получить SHA256 в традиционном виде, т.е. строкой 16ричных положительных чисел?

Старый 29.01.2012, 05:40
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Код AS1/AS2:
ba.position = 0;
s = ba.readUTF();
? Вместо цикла.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 29.01.2012, 09:15
wiselord вне форума Посмотреть профиль Отправить личное сообщение для wiselord Найти все сообщения от wiselord
  № 5  
Ответить с цитированием
wiselord

Регистрация: Nov 2011
Сообщений: 13
Тогда получаются жуткие кракозябры )

Добавлено через 1 минуту
я же в ba кладу хеш...UTF строка считает числа кодами символов, а числа хеша отнюдь не charCode.

Старый 29.01.2012, 19:42
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну так алгоритм и не должен строку возвращать... а с чего вы взяли, что там строка, если там число? Соотвественно и хешируют любые данные, а не только строки. Вот только распечатать вашим способом нормально не получится, т.как байты меньше 128 будут представлены одним знаком вместо двух. Либо уже считайте по 4 бита, либо по 4 байта и добавляйте нули по мере надобности, так хоть меньше строк складывать нужно будет.
__________________
Hell is the possibility of sanity

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:45.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.