|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Чистка и расшифровка
короче есть текст (во вложении) Это шифрованный файл половина данных зашифровано, остальное читабельно в кодировке ANSI 1251, Перекодировать не шифрованый кусок который просто в анси - можно, если даешь ему весь текст или построчно он или вообще не расшифровует или оставляет 2 строки символов.
Вижу 2 решения данного вопроса: 1)удалить все кроме текста(нормального) и перекодировать - остаток, тут проблема в том что этот текст нельзя отобрать пока он в другой кодировке, а в эту кодировку я попасть не могу. 2)как-то побайтово или посимвольно расшифровывать, тут вообще не знаю как сделать, те варианты что через поиск оставляют все те же 2 строчки что и функции (UTF8Encode, ansitoutf8); Код:
var mStream: Tstringstream; begin try mStream := tstringstream.Create(''); http.Get(sertlink+link.Text,mStream);//http://www.ukrcc.com/files/download.php?file=3721042 mStream.Position := 0; crttext.Lines.LoadFromStream(mStream); finally mStream.Free; end; Последний раз редактировалось Ivanius, 18.07.2013 в 19:08. |
#2
|
||||
|
||||
Это же сертификат ЦП по протоколу PEM X.509.V3 от RFC822 для ТОВ "Полтава-Інтелект-Сервіс", шифр ключа - sha1, переименуйте файл в *.crt и сами посмотрите. Или эту инфу как раз и надо считывать программно?
З.Ы. Чем самому парсить эту кегню, проще заставить делать это библиотеку OpenSSL, здесь под делфю порт лежит (можно ещё джедой, в смысле JEDI, но уж больно в ней ошибок много). Берёте оттуда класс TX509Certificate, где есть такие славные функциняшки как LoadFromFile, Issuer, Subject, NotBefore, NotAfter, Text etc, прям по списку из виндовой инфы по сертификату. И всё. Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 19.07.2013 в 07:22. Причина: Уточнение |
#3
|
|||
|
|||
Да я именно это и искал, но мне никто так и не смог обьяснить что в этой библиотеке конкретно нужно(openSSL) потому и начал искать обходные пути.
Вроде бы все нашел, разобрался, но вот что: Код:
procedure TUCCCheck.opencrtClick(Sender: TObject); var cert:TX509Certificate; begin if FileOpen.Dialog.Execute then try cert:=TX509Certificate.Create; cert.LoadFromFile(FileOpen.Dialog.FileName); with crttext.Lines do begin Add(cert.Issuer); Add(cert.Subject); Add(DATEToSTR(cert.NotBefore)); Add(DATEToSTR(cert.NotAfter)); Add(cert.Text); end; finally cert.Free; end; end; Понял в чем была проблема, брал все из libeay32.pas а не дллки сейчас не компилируется ссылаеться что нету этого пас файла. В общем просьба скинуть сюда весь комплект рабочих файлов OpenSLLUtils.pas, libeay32.dll, libeay32.pas в принципе файл вродебы открывается, но считать ничего не получается... Последний раз редактировалось Ivanius, 19.07.2013 в 15:32. |
#4
|
||||
|
||||
Посмотрите пжлст ответ в личке.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Ivanius (22.07.2013)
|
#5
|
|||
|
|||
можете привести пример или листинг вашей рабочей программы, возможно как-то что-то еще инициализоровать нужно?
поставил 7ю делфи и там создал тестовое приложение - тут все работает, почему в версия выше - нет мне не понятно. Последний раз редактировалось Ivanius, 22.07.2013 в 13:18. |
#6
|
||||
|
||||
Вот пример, ничего там особенного нет, буквы после декодирования - русские, украинской i с двумя точками нет вообще (код есть, буквы в наборе символов ёк) - моя среда такое не поддерживает
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Ivanius (22.07.2013)
|
#7
|
|||
|
|||
Да все нормально работает, я разобрался, в 2010 проблема в том что все строки как ANSI, а не WIDE, несовместимость, сейчас переписую с 2010 на 7.
|