• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

Base64

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 630
285
#1
Тут на коленке лепил код для кодера/декодера...
для вывода ошибки в бридж использовал "подход" http://codeby.net/forum/threads/45176.html?vi...st&p=218642
на 7-ке будет работать, на 8-ке - зависит от версии жвм (в позних версиях могет не быть sun.misc.*)
использовать можно и через бридж

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"java часть"</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='java'>import java.io.*;

public class Base64 {
public void decodeFile(String ifname, String ofname) throws Exception {
String sErr = null;
try {
byte decoded[] = new sun.misc.BASE64Decoder().decodeBuffer(new FileInputStream(ifname));
// save it to a binary stream
FileOutputStream fos = null;
try {
fos = new FileOutputStream(ofname);
}
catch (IOException e) {
e.printStackTrace();
}
fos.write(decoded);
fos.close();
}
catch (IOException e1) {
e1.printStackTrace();
sErr = e1.getLocalizedMessage();
System.out.println("send error > " + sErr);
}
finally {
if (sErr != null) {throw new Exception(sErr);}
}
}

public static void main (String[] args) {
final Base64 obj = new Base64();
final int params = args.length;
assert params < 1;
final String ifname = args[0];
String ofname = "dst.out";
if (params >= 2) {ofname = args[1];}
try {
obj.decodeFile(ifname, ofname);
}
catch(Exception e){
e.printStackTrace();
}
finally {
System.exit(0);
}
}
}[/CODE]
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"LS2J"</div></div><div class="sp-body"><div class="sp-content">
Код:
%REM
Library FileUtilsLS
Created Feb 6, 2012 by Michael N. Cholokov
Description: Comments for Library
%END REM
Option Public
Option Declare
Use "ErrorHandling"
Use "FileUtils"

Public jSession As JavaSession
Sub Initialize
Set jSession= New JAVASESSION
End Sub

%REM
Sub DecodeFile
Description: Comments for Sub
%END REM
Sub DecodeFile(inFile As String, outFile As String)
On Error GoTo ErrH
Dim Base64 As JAVACLASS
Dim Base64obj As JAVAOBJECT
Set Base64=jSession.GetClass({Base64})
Set Base64obj=Base64.CreateObject()
Print {decoding...}
Call Base64obj.decodeFile(inFile, outFile)
Print {exit}
Quit:
Exit Sub
ErrH:
RaiseError_mod
Resume Quit
End Sub
Function RaiseError_mod() As String
Dim jError As JavaError
Dim modInfo As String	
modInfo = GetThreadInfo(LSI_THREAD_MODULE) & "::" & GetThreadInfo(LSI_THREAD_CALLPROC) & ": "
Set jError = jSession.getLastJavaError()
Dim es As String
If (jError.errorMsg = "") Then
es=modInfo
If (Err = 0) Then
es = es + "Manually raised an error"
Else
es = es + "Run time error: (" + Trim(Str(Err)) + ") " + Error$ + " at line: "+ Trim(Str(Erl))
End If
Else
es=modInfo+"Error at line " & Erl & ": " & jError.errorMsg
jSession.ClearJavaError			
End If
Print es
RaiseError_mod=es
End Function
java класс можно скомпилить и использовать с командной строки: java Base64 <file from> [file to]
file from - обязательный путь к исходному файлу
file to - путь к результату (если не указан - выведет в dst.out)