Имя: Пароль:
1C
1С v8
Base64 где взять нормальный
0 hockeyist
 
11.11.22
12:27
Base64Строка() не годится для КриптоПРО. Нужен с суффиксом в конце. Вопрос, кто сталкивался с подобной ситуацией и как решал?
1 craxx
 
11.11.22
12:28
(0) Напиши свою)
2 hockeyist
 
11.11.22
12:34
(1) М.б. так и придется сделать, но может кто-то уже написал
3 hockeyist
 
11.11.22
12:44
Может можно как-нибудь 1Совский base64 приспособить
4 Смотрящий
 
11.11.22
12:48
(0) Суффикс к строке руками не прилепить ?
5 Kassern
 
11.11.22
12:50
Типовые же конфы как-то работают с крипто про, в том же ЭДО, может там глянуть в коде?
6 hockeyist
 
11.11.22
12:51
(4) Сначала надо убрать 1С-овский, потом прилепить нормальный. А для этого надо понять, что они взяли за основу для своей Base64. И как определить этот суффикс. Документации ведь как всегда нет
7 hockeyist
 
11.11.22
12:52
(5) Это еще дольше. Тогда уж быстрее самому base64 написать
8 hockeyist
 
11.11.22
12:53
(5) Кроме того, в типовых могли вообще пойти по пути мимо Base64. Только время зря терять
9 Garykom
 
гуру
11.11.22
13:02
(0) проблема не в base64 а в том что кодируешь
10 trad
 
11.11.22
13:09
(0) что вы называете суффиксом? Один или два знака "="?

у Base64Строка с этим все в порядке, когда они нужны - они есть, когда не нужны - их нету.
11 hockeyist
 
11.11.22
13:11
(9) Ошибаетесь. Возьмите любой онлайн encode base64. Введите туда что-нибудь простое, например "1". Посмотрите результат. Теперь посмотрите в 1С результат Base64Строка(). И долго думайте, откуда они взяли свой алгоритм
12 hockeyist
 
11.11.22
13:13
(10) Нет. Там фигня какая-то. Они где-то откопали какую-то экзотику. И как всегда забыли написать в документации, где копали
13 Garykom
 
гуру
11.11.22
13:13
(11) внимательно изучи https://infostart.ru/public/392252/
подумай зачем там разные кодировки? ну зачем же а? ЗАЧЕМ????
14 Garykom
 
гуру
11.11.22
13:14
(12) нет просто "обезьяна с гранатой"
15 trad
 
11.11.22
13:17
(11) https://www.base64encode.org/ и 1с из "1" делают "MQ=="
что не так?
16 trad
 
11.11.22
13:18
(15) +
Сообщить(Base64Строка(ПолучитьДвоичныеДанныеИзСтроки("1")));
8.3.18.1902
17 Garykom
 
гуру
11.11.22
13:21
(16) надо признать что поведение BOM на разных платформах 1С по дефолту разное было ))
так что добавь что пропустил

а на некоторых версиях даже глюки были Преобразование строки в BASE64
18 hockeyist
 
11.11.22
13:22
(13) (16) Вау! Спасибо. Я не нашел ПолучитьДвоичныеДанныеИзСтроки() и стал использовать поток в памяти. Типа:

    Поток = Новый ПотокВПамяти();
    зап=новый записьданных(поток);
    зап.ЗаписатьСтроку(сокрлп(ДанныеДляПодписи));
    дд=Поток.ЗакрытьИПолучитьДвоичныеДанные();

А все гораздо проще. Спасибо!
19 Garykom
 
гуру
11.11.22
13:22
(16) ПолучитьДвоичныеДанныеИзСтроки(<Строка>, <КодировкаТекста>, <ЗаписатьBOM>)
Закон Брукера: Даже маленькая практика стоит большой теории.