Преобразование Java-код, чтобы .ЧИСТЫЕ DLL ФАЙЛЫ
Мне нужно, чтобы приведенный ниже код java-скрипта был преобразован в DLL для связи с Vb.Сетевое приложение может мне кто-нибудь помочь.
пакет sage300;
импорт java.io.FileInputStream;
импорт java.io.FileOutputStream;
импорт Java.Ио.Исключение IOException;
импорт Java.Ио.Класса InputStream;
импорт Java.Ио.Клиенту OutputStream;
импорт javax.crypto.Шифр;
импорт javax.crypto.CipherInputStream;
импорт javax.crypto.CipherOutputStream;
импорт javax.crypto.SecretKey;
импорт javax.crypto.SecretKeyFactory;
импорт javax.crypto.spec.DESKeySpec;
публичный класс EncryptTTUM {
публичный статический пустота главный(строка[] аргументы) {
пробовать {
String key = "balaji23"; // для DES должно быть не менее 8 символов
если(args.длина == 1)
{
String fileName = args[0];
System.out.println("шифрование "+имя файла);
Строка encFileName = args[0]+".enc";
FileInputStream fis = новый FileInputStream(имя файла);
FileOutputStream fos = новый FileOutputStream(encFileName);
шифрование(ключ, fis, fos);
System.out.println("зашифрованное имя файла "+encFileName);
}
еще
{
System.out.println("недопустимый номер аргументов командной строки");
}
} catch (Throwable e) {
е.печатные();
}
}
общественная статический недействительным шифрования(ключ строки, InputStream является, перенаправляет ОС) бросает Throwable {
encryptOrDecrypt(ключ, шифр.ENCRYPT_MODE, есть ОС);
}
public static void decrypt(String key, InputStream is, OutputStream os) бросает Throwable {
encryptOrDecrypt(ключ, шифр.DECRYPT_MODE, есть ОС);
}
public static void encryptOrDecrypt(String key, int mode, InputStream is, OutputStream os) бросает Throwable {
DESKeySpec ДКС = новый DESKeySpec(ключ.метод getbytes());
SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
SecretKey desKey = skf.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES"); // DES/ECB/PKCS5Padding для SunJCE
if (mode == шифр.ENCRYPT_MODE) {
cipher.init(шифр.ENCRYPT_MODE, desKey);
CipherInputStream cis = новый CipherInputStream(is, cipher);
doCopy(СНГ, ОС);
} else if (mode == шифр.DECRYPT_MODE) {
cipher.init(шифр.DECRYPT_MODE, desKey);
CipherOutputStream cos = новый CipherOutputStream(os, шифр);
doCopy(является, потому что);
}
}
общественная статический недействительным doCopy(InputStream является, перенаправляет ОС) бросает IOException {
byte[] bytes = новый байт[64];
int numBytes;
while ((numBytes = is.read(bytes)) != -1) {
os.write(байты, 0, numBytes);
}
ОС.флеш();
ОС.рядом();
это.рядом();
}
}
Что я уже пробовал:
Я попытался с помощью кода и преобразования АО в Windows, которое выпадает компиляции выдает ошибки ,
Я попытался ДЭС с использованием криптографических .Сеть, которая имеет разницу в преобразовании, как только вы конвертируете из .Net и он не будет извлекаться из Java, поэтому мне нужен этот приведенный выше код для преобразования в DLL для подключения в качестве ссылки на мой проект VB.
Richard MacCutchan
Java не генерирует код, совместимый с .NET, и не создает библиотеки DLL. Вам нужно найти другое решение. Если вы просто хотите использовать шифрование, то изучите его .Классы сетевого шифрования.
Devendra Godawatta
Нет, есть инструменты, которые могут быть преобразованы в оболочку DLL, как с помощью JSC, то, что я хочу, это не конвертировать Java .Net, но чтобы преобразовать его в DLL, чтобы ссылаться на него .Net у меня нет большого представления о Java Script чтобы изменить это если кто то знает Java он может это сделать я думаю
Richard MacCutchan
Если вы знаете, что есть инструменты для его преобразования, то вам нужно взять один из них и попробовать его. И, пожалуйста, перестаньте называть это Java-скриптом, это просто Java. Javscript-это нечто совершенно другое.
Dave Kreskowiak
Java не компилируется в dll-файлы. Когда-либо.
Если вам нужна библиотека dll, вам придется преобразовать код в другой язык и фреймворк, который скомпилируется до библиотеки DLL .
И если под "помощью" вы подразумеваете "сделать работу за вас", вы пришли не на тот сайт.