powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как раскодировать текст из кода Base64
25 сообщений из 25, страница 1 из 1
Как раскодировать текст из кода Base64
    #33130208
Sefem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет Всем!
Есть текст "z+Dy8OD16O0g0SDC" как его расшифровать если известно что закодирован Base64. Работаю в PB 10.
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #33130229
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так
A PBNI extension that provides array manipulation, bitwise operations, base-64 encoding/decoding, CPU information, system metrics, ASA 8.x DBTools API and network operations. Updated for PB10/Unicode.
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #33130230
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #33130233
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще можно и на х, сорри на гугл послать :-)
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #33130248
Sefem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу попасть на ссылки, выдает:

The address is not available from this machine

может попозже попробовать
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #33144996
sefem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кому интересно решил проблему следующим образом:
В моем случае:
w_1 ==> Declare Local Efternak Functions ==> Local External Function :

FUNCTION int Base64Decode ( ref string source, ref string result, int n ) LIBRARY "BASE64.DLL" ALIAS FOR "Base64Decode;ansi"

вызываю:
String lsText = "z+Dy8OD16O0g0SDC"
String Str // раскодированный текст
Int i // кол-во символов в Str
Int liLen

Str = Space ( Len(lsText) / 4 * 3) + Char(0)
liLen = Len ( lsText )
i = Base64Decode ( lsText, Str, liLen )

вроде так, как выложить длл не знаю подскажите.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как раскодировать текст из кода Base64
    #34530590
Вот твоя расшифровка "Патрахин С В"
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как раскодировать текст из кода Base64
    #35770045
Дремучий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди добрые, простите за археологию, но... :(

В общем есть у меня проблема. Надо из BASE64 перекодировать в нормальный вид. И вроде бы все есть... но не выходит каменный цветок. :(

Вариант предложенный Филиппом ("Base64 Encoding ActiveX Library 2.04") у меня не заработал. Что-то я видимо не так прикрутил. Прописал в Global External Functions следующий код:
function string base64_decode( string sourse ) library 'base64.dll' alias for 'Decode'
но при вызове функции при выполнени программы получаю ругань: "Bad runtime function reference... бла-бла-бла".

Попробовал поискать уже существующие решения... столкнулся с тем, что, или у dll нет описания и непонятно что с какими параметрами вызывать, или описание есть (предположительно), но тогда надо скачивать архив, а это у меня с работы делать нельзя (физически).

Собственно буду признателен за любую помощь. Меня совершенно устроит, или немного более подробное пояснение, что надо сделать, что бы заработал "вариант Филиппа", или ссылка на dll`ку (в смысле где можно скачать именно одну dll вне всяких архивов) с указанием что и с какими параметрами надо вызывать.
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35770047
Дремучий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку. У меня PB 9.0.2.
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35770141
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, по-моему должно работать - вырезал из проекта и не проверял. Для небольшого ускорения можно задавать длинну массива out[] до цикла распаковки.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
char speed[]
long lc_table[ 256 ] =       { 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 62 , 99 , 99 , 99 , 63 , &
                             52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 99 , 99 , 99 , 64 , 99 , 99 , &
                             99 ,  0 ,  1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,  9 , 10 , 11 , 12 , 13 , 14 , &
                             15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , &
                             41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99  &
                            }
long i,j,p,ln,k
long mas[ 4 ]
char out[]

ln = len(is_data) //is_data - строка для декодирования
speed = is_data
for i =  1  to ln
  p = lc_table[asc(speed[i]) +  1 ]
  if p <>  99  then
    mas[j] = p
    j = j + 1 
    if j =  5  then
      //Набрали четверку байт
      k ++
      out[k] = char(mas[ 1 ] *  4  + truncate(mas[ 2 ]/ 16 , 0 ))
      if mas[ 3 ] <>  64  then 
        k ++
        out[k] = char(mod(mas[ 2 ], 16 ) *  16  + truncate(mas[ 3 ]/ 4 , 0 ))
      end if
      if mas[ 4 ] <>  64  then 
        k ++
        out[k] = char(mod(mas[ 3 ], 4 ) *  64  + mas[ 4 ])
      end if
      j =  1 
    end if
  end if		
next
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35770164
Дремучий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин МаркВот, по-моему должно работать - вырезал из проекта и не проверял.
Попробую проверить. На первый взгляд намного оптимальнее, чем у меня. Я ведь тоже реализовал сначала на PB... но мне надо перекодировать слишком большие объемы (до 10 файлов 0.5 - 2 Мб). У меня получилось чудовищно долго по времени. :(
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35770212
Дремучий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Локшин Марк
Большое спасибо! Максимальный файл (13Мб) был перекодирован за 71 секунду. Долго конечно, но на это я уже могу реально опереться.

P.S. Если всплывут более быстрые варианты, то я буду только рад.
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35770215
Дремучий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чуть не забыл.... в приведенном примере пропущена исходная инициализация j = 1.
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35770433
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп Можно так
A PBNI extension that provides array manipulation, bitwise operations, base-64 encoding/decoding, CPU information, system metrics, ASA 8.x DBTools API and network operations. Updated for PB10/Unicode.

Они там на CodeExchange всё поменяли, вот новый линк
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35869230
Baricov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предлагаю скачать программу "Кодер-Декодер Base64" работает отлично!
Скачать тут
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35870559
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дремучий 2 Локшин Марк
Большое спасибо! Максимальный файл (13Мб) был перекодирован за 71 секунду. Долго конечно, но на это я уже могу реально опереться.

P.S. Если всплывут более быстрые варианты, то я буду только рад.
Если заранее присваивать в моем примере массиву out[] например 20 миллионному элементу значение до цикла, то получится гораздо быстрее, т.к. 13 миллионов раз изменять размер out будет не быстро, причем чем больше массив, тем медленней...
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35872854
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппФилипп Можно так
A PBNI extension that provides array manipulation, bitwise operations, base-64 encoding/decoding, CPU information, system metrics, ASA 8.x DBTools API and network operations. Updated for PB10/Unicode.

Они там на CodeExchange всё поменяли, вот новый линк

Пробовал посмотреть и то и другое, но выдает ошибку. У меня РВ10.5. Сделал миграцию, но просмотреть в работе не могу. В чем дело?
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35874873
18-я весна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AISФилиппФилипп Можно так
A PBNI extension that provides array manipulation, bitwise operations, base-64 encoding/decoding, CPU information, system metrics, ASA 8.x DBTools API and network operations. Updated for PB10/Unicode.

Они там на CodeExchange всё поменяли, вот новый линк

Пробовал посмотреть и то и другое, но выдает ошибку. У меня РВ10.5. Сделал миграцию, но просмотреть в работе не могу. В чем дело?

PBNI extension недостаточно мигрировать (и даже не нужно).
Надо перегенерить PBD утилитой pbx2pbdXXX.exe от вашей версии PB
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #35874895
18-я весна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут сегодня со скуки написал DLLку которая декодирует base64
и объект-обертку к ней, который без изменений годится для любой версии PB (от 5 и выше).
На входе String, на выходе Blob.
См. папку PB в архиве.

Если кому-то надо еще и кодирование, могу дописать во время следующего приступа скуки :)
Исходники DLL прилагаю.
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #36081834
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18-я веснаAISФилиппФилипп Можно так
A PBNI extension that provides array manipulation, bitwise operations, base-64 encoding/decoding, CPU information, system metrics, ASA 8.x DBTools API and network operations. Updated for PB10/Unicode.

Они там на CodeExchange всё поменяли, вот новый линк

Пробовал посмотреть и то и другое, но выдает ошибку. У меня РВ10.5. Сделал миграцию, но просмотреть в работе не могу. В чем дело?

PBNI extension недостаточно мигрировать (и даже не нужно).
Надо перегенерить PBD утилитой pbx2pbdXXX.exe от вашей версии PB
Пробовал перегенерить PBD утилитой pbx2pbd105.exe как пишется в хелпе, но не получается, выдает ошибку:
"не возможно найти dll:powerpack100.pbx"
Почему?
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #36081909
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст ошибки
Код: plaintext
1.
2.
Can not load Dll: powerpack100.pbx!
Adding file: powerpack100.pbx into PBD:C:\temp\powerpack105.pbd ... Failed!
Не удается найти указанный файл.
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #36083101
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только что проверил для PB11 - все работает. Наверно не так что-то делаете.

"C:\Program Files\Sybase\PowerBuilder 11.0\SDK\PBNI\pbx2pbd110.exe" powerpack100.pbd powerpack100.pbx

Adding file: powerpack100.pbx into PBD:C:\test\PBNI_PowerPack\test11\powerpack100.pbd ..
. Succeeded!
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #36084568
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyТолько что проверил для PB11 - все работает. Наверно не так что-то делаете.

"C:\Program Files\Sybase\PowerBuilder 11.0\SDK\PBNI\pbx2pbd110.exe" powerpack100.pbd powerpack100.pbx

Adding file: powerpack100.pbx into PBD:C:\test\PBNI_PowerPack\test11\powerpack100.pbd ..
. Succeeded!
Практически набрал аналогичное.
Код: plaintext
C:\Program Files\Sybase 10_5\Shared\PowerBuilder\pbx2pbd105.exe powerpack105.pbd powerpack100.pbx
Файл powerpack100.pbx в этом же каталоге.
И ошибку выдаёт.
Может потому, что у меня нет PBNI?
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #36084891
+/-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+/-
Гость
путь к екзешнику возьмите в двойные кавычки.
...
Рейтинг: 0 / 0
Как раскодировать текст из кода Base64
    #36086018
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Получилось. Таки была ошибка. :)
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как раскодировать текст из кода Base64
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]