Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как узнать что строка base64


Автор: XperT 13.2.2010, 00:13
На входе есть строка, но она может быть как обычная, так и зашифрована методом base64, но не указано зашифрована она или нет.
Есть ли какие то способы узнать это программно? (сначала думал проверять наличие пробелов, но их может и не быть в обычной строке, если она состоит из одного слова)

Пока что у меня есть только 3 признака: 
- нету пробелов
- количество символов кратно 4
- 0-3 знака "=" в конце закодированного текста (тут плохо, что может быть 0)

Автор: Matematik 13.2.2010, 11:00
Почти правильно.
Чтобы расшифровать строка должна быть
 - длина кратна 4
 - состоит только из символов «ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/»
 - может оканчиваться на "="

Еще, например в почтовых сообщениях, base64 может нарезаеться на строки одной длинны, типа
Код

UmFyIRoHAM+QcwAADQAAAAAAAADrCnRElEkAkC8AAG9aAQAC5Q3ThO6hSjwdMxwAIAAAAHByb3h5
bGlzdF9kdW1wXzIwMTUyOTgxOS5jc3ZrXAcG5TiQPgDwMPh8kaDChCzyTzkcsMed4eYDrcVb4NOs
WjFf5rtyc4Ds7JXxI4GEyfM7spoFyFxOULme4hw0vODmiNBfoU0ZWo8hmQy/w14ZgxNXUMjtCeUX
UduOLHBnllr2AfJ8yQ+DNMMlYRmrSNAds+JO22UcXcn6WOyoPuVtaxTiaKGRHMmPQaNS0P5aYbS5
Q/cmf+ECyuGmutTgPq3qzBdbVm33FbjYUKplpJ1XKaFJnfUFrgAOVBVXwBxq9M5cQIdRdctjVy3a
k3BVerkgxOKhisgkJwoPSRKr4JJkgEhHoWhqeijO3DCKVUYB/SgOl6dXUT+0SI/zwY+C2Paixe6F
9EwvyZB0JI+6685IDTYmwBLm8Cshk/nqxEIMt/c7aYQG1XvUOvoZWO/enzCknzUV7gz4E55sr0gu


Автор: bems 14.2.2010, 01:47
Ну еще расшифруй и проверь получился ли текст (в ожидеаемой кодировке)

Добавлено через 45 секунд
Ну или если там приходят бинарные данные, то проверь их осмысленность

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)