/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
tests/hash.os
229 строк
15 KB
Mr-Rm
обработка параметра Количество (совместимо)
22 май 2026, 16:48
22 май 2026, 16:48
ce76a41
Код
Авторство
О чём код?
Перем юТест; Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт юТест = ЮнитТестирование; ВсеТесты = Новый Массив; ВсеТесты.Добавить("ТестДолжен_ПроверитьMD5"); ВсеТесты.Добавить("ТестДолжен_ПроверитьSHA1"); ВсеТесты.Добавить("ТестДолжен_ПроверитьSHA256"); ВсеТесты.Добавить("ТестДолжен_ПроверитьSHA384"); ВсеТесты.Добавить("ТестДолжен_ПроверитьSHA512"); ВсеТесты.Добавить("ТестДолжен_ПроверитьCRC32"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоХешированиеНеЗанимаетФайл"); ВсеТесты.Добавить("ТестДолжен_ПроверитьХешиБезДанных"); ВсеТесты.Добавить("ТестДолжен_ПроверитьХешиПустойСтроки"); ВсеТесты.Добавить("ТестДолжен_ПроверитьХешиПустогоПотока"); ВсеТесты.Добавить("ТестДолжен_ПроверитьИнкрементальность"); ВсеТесты.Добавить("ТестДолжен_ПроверитьИгнорированиеВторогоПараметра"); Возврат ВсеТесты; КонецФункции Процедура ПослеЗапускаТеста() Экспорт юТест.УдалитьВременныеФайлы(); КонецПроцедуры Процедура ТестДолжен_ПроверитьMD5() Экспорт Провайдер=Новый ХешированиеДанных(ХешФункция.MD5); Провайдер.Добавить("123"); Провайдер.Добавить("456"); Провайдер.Добавить("789"); юТест.ПроверитьРавенство("25F9E794323B453885F5181F1B624D0B",Провайдер.ХешСуммаСтрокой); юТест.ПроверитьРавенство("25 F9 E7 94 32 3B 45 38 85 F5 18 1F 1B 62 4D 0B",Строка(Провайдер.ХешСумма)); КонецПроцедуры Процедура ТестДолжен_ПроверитьSHA1() Экспорт Провайдер=Новый ХешированиеДанных(ХешФункция.SHA1); Провайдер.Добавить("123"); Провайдер.Добавить("456"); Провайдер.Добавить("789"); юТест.ПроверитьРавенство("F7C3BC1D808E04732ADF679965CCC34CA7AE3441",Провайдер.ХешСуммаСтрокой); юТест.ПроверитьРавенство("F7 C3 BC 1D 80 8E 04 73 2A DF 67 99 65 CC C3 4C A7 AE 34 41",Строка(Провайдер.ХешСумма)); КонецПроцедуры Процедура ТестДолжен_ПроверитьSHA256() Экспорт Провайдер=Новый ХешированиеДанных(ХешФункция.SHA256); Провайдер.Добавить("123"); Провайдер.Добавить("456"); Провайдер.Добавить("789"); юТест.ПроверитьРавенство("15E2B0D3C33891EBB0F1EF609EC419420C20E320CE94C65FBC8C3312448EB225",Провайдер.ХешСуммаСтрокой); юТест.ПроверитьРавенство("15 E2 B0 D3 C3 38 91 EB B0 F1 EF 60 9E C4 19 42 0C 20 E3 20 CE 94 C6 5F BC 8C 33 12 44 8E B2 25",Строка(Провайдер.ХешСумма)); КонецПроцедуры Процедура ТестДолжен_ПроверитьSHA384() Экспорт Провайдер=Новый ХешированиеДанных(ХешФункция.SHA384); Провайдер.Добавить("123"); Провайдер.Добавить("456"); Провайдер.Добавить("789"); юТест.ПроверитьРавенство("EB455D56D2C1A69DE64E832011F3393D45F3FA31D6842F21AF92D2FE469C499DA5E3179847334A18479C8D1DEDEA1BE3",Провайдер.ХешСуммаСтрокой); юТест.ПроверитьРавенство("EB 45 5D 56 D2 C1 A6 9D E6 4E 83 20 11 F3 39 3D 45 F3 FA 31 D6 84 2F 21 AF 92 D2 FE 46 9C 49 9D A5 E3 17 98 47 33 4A 18 47 9C 8D 1D ED EA 1B E3",Строка(Провайдер.ХешСумма)); КонецПроцедуры Процедура ТестДолжен_ПроверитьSHA512() Экспорт Провайдер=Новый ХешированиеДанных(ХешФункция.SHA512); Провайдер.Добавить("123"); Провайдер.Добавить("456"); Провайдер.Добавить("789"); юТест.ПроверитьРавенство("D9E6762DD1C8EAF6D61B3C6192FC408D4D6D5F1176D0C29169BC24E71C3F274AD27FCD5811B313D681F7E55EC02D73D499C95455B6B5BB503ACF574FBA8FFE85",Провайдер.ХешСуммаСтрокой); юТест.ПроверитьРавенство("D9 E6 76 2D D1 C8 EA F6 D6 1B 3C 61 92 FC 40 8D 4D 6D 5F 11 76 D0 C2 91 69 BC 24 E7 1C 3F 27 4A D2 7F CD 58 11 B3 13 D6 81 F7 E5 5E C0 2D 73 D4 99 C9 54 55 B6 B5 BB 50 3A CF 57 4F BA 8F FE 85",Строка(Провайдер.ХешСумма)); КонецПроцедуры Процедура ТестДолжен_ПроверитьCRC32() Экспорт Провайдер=Новый ХешированиеДанных(ХешФункция.CRC32); Провайдер.Добавить("123"); Провайдер.Добавить("456"); Провайдер.Добавить("789"); юТест.ПроверитьРавенство(3421780262,Провайдер.ХешСумма); юТест.ПроверитьРавенство("CBF43926",Провайдер.ХешСуммаСтрокой); КонецПроцедуры Процедура ТестДолжен_ПроверитьЧтоХешированиеНеЗанимаетФайл() Экспорт Файл = юТест.ИмяВременногоФайла(); Запись = Новый ЗаписьТекста(Файл); Запись.Записать("Привет"); Запись.Закрыть(); Провайдер = Новый ХешированиеДанных(ХешФункция.MD5); Провайдер.ДобавитьФайл(Файл); Провайдер2 = Новый ХешированиеДанных(ХешФункция.CRC32); Провайдер2.ДобавитьФайл(Файл); УдалитьФайлы(Файл); Запись = Новый ЗаписьТекста(Файл); Запись.Записать("Привет!"); Запись.Закрыть(); юТест.ПроверитьРавенство("56 45 D3 0C 39 EA 90 18 D1 CA B7 7D 5F 37 0A 8C",Строка(Провайдер.ХешСумма)); юТест.ПроверитьРавенство(3139669858,Провайдер2.ХешСумма); КонецПроцедуры Процедура ТестДолжен_ПроверитьХешиБезДанных() Экспорт ПустыеХеши = Новый Соответствие(); ПустыеХеши.Вставить(ХешФункция.CRC32,"0"); ПустыеХеши.Вставить(ХешФункция.MD5,"D4 1D 8C D9 8F 00 B2 04 E9 80 09 98 EC F8 42 7E"); ПустыеХеши.Вставить(ХешФункция.SHA1,"DA 39 A3 EE 5E 6B 4B 0D 32 55 BF EF 95 60 18 90 AF D8 07 09"); ПустыеХеши.Вставить(ХешФункция.SHA256,"E3 B0 C4 42 98 FC 1C 14 9A FB F4 C8 99 6F B9 24 27 AE 41 E4 64 9B 93 4C A4 95 99 1B 78 52 B8 55"); ПустыеХеши.Вставить(ХешФункция.SHA384, "38 B0 60 A7 51 AC 96 38 4C D9 32 7E B1 B1 E3 6A 21 FD B7 11 14 BE 07 43 4C 0C C7 BF 63 F6 E1 DA 27 4E DE BF E7 6F 65 FB D5 1A D2 F1 48 98 B9 5B"); ПустыеХеши.Вставить(ХешФункция.SHA512, "CF 83 E1 35 7E EF B8 BD F1 54 28 50 D6 6D 80 07 D6 20 E4 05 0B 57 15 DC 83 F4 A9 21 D3 6C E9 CE 47 D0 D1 3C 5D 85 F2 B0 FF 83 18 D2 87 7E EC 2F 63 B9 31 BD 47 41 7A 81 A5 38 32 7A F9 27 DA 3E"); Для Каждого ХФ из ХешФункция Цикл Провайдер = Новый ХешированиеДанных(ХФ); юТест.ПроверитьРавенство(ПустыеХеши[ХФ], Строка(Провайдер.ХешСумма)); КонецЦикла КонецПроцедуры Процедура ТестДолжен_ПроверитьХешиПустойСтроки() Экспорт ПустыеХеши = Новый Соответствие(); ПустыеХеши.Вставить(ХешФункция.CRC32,"0"); ПустыеХеши.Вставить(ХешФункция.MD5,"D4 1D 8C D9 8F 00 B2 04 E9 80 09 98 EC F8 42 7E"); ПустыеХеши.Вставить(ХешФункция.SHA1,"DA 39 A3 EE 5E 6B 4B 0D 32 55 BF EF 95 60 18 90 AF D8 07 09"); ПустыеХеши.Вставить(ХешФункция.SHA256,"E3 B0 C4 42 98 FC 1C 14 9A FB F4 C8 99 6F B9 24 27 AE 41 E4 64 9B 93 4C A4 95 99 1B 78 52 B8 55"); ПустыеХеши.Вставить(ХешФункция.SHA384, "38 B0 60 A7 51 AC 96 38 4C D9 32 7E B1 B1 E3 6A 21 FD B7 11 14 BE 07 43 4C 0C C7 BF 63 F6 E1 DA 27 4E DE BF E7 6F 65 FB D5 1A D2 F1 48 98 B9 5B"); ПустыеХеши.Вставить(ХешФункция.SHA512, "CF 83 E1 35 7E EF B8 BD F1 54 28 50 D6 6D 80 07 D6 20 E4 05 0B 57 15 DC 83 F4 A9 21 D3 6C E9 CE 47 D0 D1 3C 5D 85 F2 B0 FF 83 18 D2 87 7E EC 2F 63 B9 31 BD 47 41 7A 81 A5 38 32 7A F9 27 DA 3E"); Для Каждого ХФ из ХешФункция Цикл Провайдер = Новый ХешированиеДанных(ХФ); Провайдер.Добавить(""); юТест.ПроверитьРавенство(ПустыеХеши[ХФ], Строка(Провайдер.ХешСумма)); КонецЦикла КонецПроцедуры Процедура ТестДолжен_ПроверитьХешиПустогоПотока() Экспорт ПустыеХеши = Новый Соответствие(); ПустыеХеши.Вставить(ХешФункция.CRC32,"0"); ПустыеХеши.Вставить(ХешФункция.MD5,"D4 1D 8C D9 8F 00 B2 04 E9 80 09 98 EC F8 42 7E"); ПустыеХеши.Вставить(ХешФункция.SHA1,"DA 39 A3 EE 5E 6B 4B 0D 32 55 BF EF 95 60 18 90 AF D8 07 09"); ПустыеХеши.Вставить(ХешФункция.SHA256,"E3 B0 C4 42 98 FC 1C 14 9A FB F4 C8 99 6F B9 24 27 AE 41 E4 64 9B 93 4C A4 95 99 1B 78 52 B8 55"); ПустыеХеши.Вставить(ХешФункция.SHA384, "38 B0 60 A7 51 AC 96 38 4C D9 32 7E B1 B1 E3 6A 21 FD B7 11 14 BE 07 43 4C 0C C7 BF 63 F6 E1 DA 27 4E DE BF E7 6F 65 FB D5 1A D2 F1 48 98 B9 5B"); ПустыеХеши.Вставить(ХешФункция.SHA512, "CF 83 E1 35 7E EF B8 BD F1 54 28 50 D6 6D 80 07 D6 20 E4 05 0B 57 15 DC 83 F4 A9 21 D3 6C E9 CE 47 D0 D1 3C 5D 85 F2 B0 FF 83 18 D2 87 7E EC 2F 63 B9 31 BD 47 41 7A 81 A5 38 32 7A F9 27 DA 3E"); БДД = ПолучитьБуферДвоичныхДанныхИзСтроки(""); Поток = Новый ПотокВПамяти(БДД); Для Каждого ХФ из ХешФункция Цикл Провайдер = Новый ХешированиеДанных(ХФ); Провайдер.Добавить(Поток); юТест.ПроверитьРавенство(ПустыеХеши[ХФ], Строка(Провайдер.ХешСумма)); Поток.Перейти(0); КонецЦикла КонецПроцедуры Процедура ТестДолжен_ПроверитьИнкрементальность() Экспорт Хеши123 = Новый Соответствие(); Хеши123.Вставить(ХешФункция.CRC32,"2286445522"); Хеши123.Вставить(ХешФункция.MD5,"20 2C B9 62 AC 59 07 5B 96 4B 07 15 2D 23 4B 70"); Хеши123.Вставить(ХешФункция.SHA1,"40 BD 00 15 63 08 5F C3 51 65 32 9E A1 FF 5C 5E CB DB BE EF"); Хеши123.Вставить(ХешФункция.SHA256,"A6 65 A4 59 20 42 2F 9D 41 7E 48 67 EF DC 4F B8 A0 4A 1F 3F FF 1F A0 7E 99 8E 86 F7 F7 A2 7A E3"); Хеши123.Вставить(ХешФункция.SHA384, "9A 0A 82 F0 C0 CF 31 47 0D 7A FF ED E3 40 6C C9 AA 84 10 67 15 20 B7 27 04 4E DA 15 B4 C2 55 32 A9 B5 CD 8A AF 9C EC 49 19 D7 62 55 B6 BF B0 0F"); Хеши123.Вставить(ХешФункция.SHA512, "3C 99 09 AF EC 25 35 4D 55 1D AE 21 59 0B B2 6E 38 D5 3F 21 73 B8 D3 DC 3E EE 4C 04 7E 7A B1 C1 EB 8B 85 10 3E 3B E7 BA 61 3B 31 BB 5C 9C 36 21 4D C9 F1 4A 42 FD 7A 2F DB 84 85 6B CA 5C 44 C2"); ХешиПолн = Новый Соответствие(); ХешиПолн.Вставить(ХешФункция.CRC32,"158520161"); ХешиПолн.Вставить(ХешФункция.MD5,"E1 0A DC 39 49 BA 59 AB BE 56 E0 57 F2 0F 88 3E"); ХешиПолн.Вставить(ХешФункция.SHA1,"7C 4A 8D 09 CA 37 62 AF 61 E5 95 20 94 3D C2 64 94 F8 94 1B"); ХешиПолн.Вставить(ХешФункция.SHA256,"8D 96 9E EF 6E CA D3 C2 9A 3A 62 92 80 E6 86 CF 0C 3F 5D 5A 86 AF F3 CA 12 02 0C 92 3A DC 6C 92"); ХешиПолн.Вставить(ХешФункция.SHA384, "0A 98 9E BC 4A 77 B5 6A 6E 2B B7 B1 9D 99 5D 18 5C E4 40 90 C1 3E 29 84 B7 EC C6 D4 46 D4 B6 1E A9 99 1B 76 A4 C2 F0 4B 1B 4D 24 48 41 44 94 54"); ХешиПолн.Вставить(ХешФункция.SHA512, "BA 32 53 87 6A ED 6B C2 2D 4A 6F F5 3D 84 06 C6 AD 86 41 95 ED 14 4A B5 C8 76 21 B6 C2 33 B5 48 BA EA E6 95 6D F3 46 EC 8C 17 F5 EA 10 F3 5E E3 CB C5 14 79 7E D7 DD D3 14 54 64 E2 A0 BA B4 13"); Для Каждого ХФ из ХешФункция Цикл Провайдер = Новый ХешированиеДанных(ХФ); Провайдер.Добавить("123"); юТест.ПроверитьРавенство(Хеши123[ХФ], Строка(Провайдер.ХешСумма)); Провайдер.Добавить("456"); юТест.ПроверитьРавенство(ХешиПолн[ХФ], Строка(Провайдер.ХешСумма)); КонецЦикла КонецПроцедуры Процедура ТестДолжен_ПроверитьИгнорированиеВторогоПараметра() Экспорт Хеш = 158520161; Провайдер = Новый ХешированиеДанных(ХешФункция.CRC32); Провайдер.Добавить("123456",); юТест.ПроверитьРавенство(Хеш, Провайдер.ХешСумма); Провайдер = Новый ХешированиеДанных(ХешФункция.CRC32); Провайдер.Добавить("123456", 3); юТест.ПроверитьРавенство(Хеш, Провайдер.ХешСумма); Провайдер = Новый ХешированиеДанных(ХешФункция.CRC32); Провайдер.Добавить("123456", '0001-01-01'); юТест.ПроверитьРавенство(Хеш, Провайдер.ХешСумма); Провайдер = Новый ХешированиеДанных(ХешФункция.CRC32); Провайдер.Добавить("123456", Новый Массив); юТест.ПроверитьРавенство(Хеш, Провайдер.ХешСумма); КонецПроцедуры