![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Nov 2011
Сообщений: 13
|
Нужно взять хеш строки любым алгоритмом. Как это сделать на AS3?
|
|
|||||
|
Регистрация: Nov 2011
Сообщений: 13
|
Напишите, пожалуйста, код, как их использовать )
Добавлено через 17 минут Я скачал библиотеку com.hurlant.crypto, распаковал в папку проекта и сделал так 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; } Как получить SHA256 в традиционном виде, т.е. строкой 16ричных положительных чисел? |
|
|||||
|
Регистрация: Nov 2011
Сообщений: 13
|
Тогда получаются жуткие кракозябры )
Добавлено через 1 минуту я же в ba кладу хеш...UTF строка считает числа кодами символов, а числа хеша отнюдь не charCode. |
|
|||||
|
Modus ponens
|
Ну так алгоритм и не должен строку возвращать... а с чего вы взяли, что там строка, если там число? Соотвественно и хешируют любые данные, а не только строки. Вот только распечатать вашим способом нормально не получится, т.как байты меньше 128 будут представлены одним знаком вместо двух. Либо уже считайте по 4 бита, либо по 4 байта и добавляйте нули по мере надобности, так хоть меньше строк складывать нужно будет.
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|