/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
tests/datahashing-from-stream.os
97 строк
6 KB
Mr-Rm
Dispose хеш-провайдера и мелочи
21 май 2026, 17:05
21 май 2026, 17:05
15b12eb
Код
Авторство
О чём код?
Перем юТест; Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт юТест = ЮнитТестирование; ВсеТесты = Новый Массив; ВсеТесты.Добавить("ТестДолжен_ПроверитьХешированниеДанныхИзПотокаВПамяти"); ВсеТесты.Добавить("ТестДолжен_ПроверитьХешированниеДанныхИзФайловогоПотока"); ВсеТесты.Добавить("ТестДолжен_ПроверитьХешированниеДанныхИзРазныхПотоков"); Возврат ВсеТесты; КонецФункции Процедура ТестДолжен_ПроверитьХешированниеДанныхИзПотокаВПамяти() Экспорт БДД = ПолучитьБуферДвоичныхДанныхИзHexСтроки("313233"); Поток = Новый ПотокВПамяти(); Поток.Записать(БДД, 0, 3); Поток.Перейти(0,ПозицияВПотоке.Начало); ХД = Новый ХешированиеДанных(ХешФункция.MD5); ХД.Добавить(Поток); юТест.ПроверитьРавенство(Строка(ХД.ХешСумма), "20 2C B9 62 AC 59 07 5B 96 4B 07 15 2D 23 4B 70", "Не получен ожидаемый hash - 20 2C B9 62 AC 59 07 5B 96 4B 07 15 2D 23 4B 70" + "Получен hash - " + Строка(ХД.ХешСумма) ); ДвоичныеДанные = ПолучитьДвоичныеДанныеИзHexСтроки("1b1e c416 6a11 c03b 3afe faea 442e 7709"); Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения(); Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256); Хеширование.Добавить(Поток, 2); юТест.ПроверитьРавенство("0b427acd4088d248408e38b34fb378172a05bd71e58b384f5b279beea7aea467" , НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма))); Хеширование.Добавить(Поток, 12); юТест.ПроверитьРавенство("2a0815b87888a03406d7ab482b965361eb96112db88e8ab6ea214cb107ee8469" , НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма))); КонецПроцедуры Процедура ТестДолжен_ПроверитьХешированниеДанныхИзФайловогоПотока() Экспорт ИмяВременногоФайла = юТест.ИмяВременногоФайла(); ЗаписьТекста = Новый ЗаписьТекста(ИмяВременногоФайла); ЗаписьТекста.ЗаписатьСтроку("1b1e c416 6a11 c03b 3afe faea 442e 7709"); ЗаписьТекста.Закрыть(); ФайловыйПоток = Новый ФайловыйПоток(ИмяВременногоФайла, РежимОткрытияФайла.Открыть); Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256); Хеширование.Добавить(ФайловыйПоток, 2); юТест.ПроверитьРавенство("f257f0501a5e137710e26f1c35ddd32ce2b5752f20274a648cb6d0347849a5a9" , НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма))); Хеширование.Добавить(ФайловыйПоток, 12); юТест.ПроверитьРавенство("3bc6abfa41bb73c8bcc4c0f5f4d4db42f10f38295a0432afc592fe998465cb9a" , НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма))); ФайловыйПоток.Закрыть(); КонецПроцедуры Процедура ТестДолжен_ПроверитьХешированниеДанныхИзРазныхПотоков() Экспорт ДвоичныеДанные = ПолучитьДвоичныеДанныеИзHexСтроки("1b1e c416 6a11 c03b 3afe faea 442e 7709"); Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения(); ИмяВременногоФайла = юТест.ИмяВременногоФайла(); ЗаписьТекста = Новый ЗаписьТекста(ИмяВременногоФайла); ЗаписьТекста.ЗаписатьСтроку("1b1e c416 6a11 c03b 3afe faea 442e 7709"); ЗаписьТекста.Закрыть(); ФайловыйПоток = Новый ФайловыйПоток(ИмяВременногоФайла, РежимОткрытияФайла.Открыть); Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256); Хеширование.Добавить(Поток, 2); юТест.ПроверитьРавенство("0b427acd4088d248408e38b34fb378172a05bd71e58b384f5b279beea7aea467" , НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма))); Хеширование.Добавить(Поток, 12); юТест.ПроверитьРавенство("2a0815b87888a03406d7ab482b965361eb96112db88e8ab6ea214cb107ee8469" , НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма))); Хеширование.Добавить(ФайловыйПоток, 2); юТест.ПроверитьРавенство("8f0ae87f4e7fa52ed08127867a7430003b312ca3777319a533ae417daa6255cc" , НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма))); Хеширование.Добавить(ФайловыйПоток, 12); юТест.ПроверитьРавенство("4ec0ce7ec4e12c6e8922f5f1c28a582557e88731a32845a0429cda74ee7fa649" , НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма))); ФайловыйПоток.Закрыть(); КонецПроцедуры