Странно, моя проблема исходила из PHP.
Ошибка API REST API, и впоследствии она прерывала загрузку библиотек. Поскольку сбой был вызван вызовом REST, он не дал мне ошибку компиляции php.
Сохраните это как параметр, если загрузка jquery выглядит нормально.
BouncyCastle имеет определенную поддержку OpenPGP («определенные», потому что они упоминают только RFC 2440, а не RFC 4880, который является более поздним). Также вы можете посмотреть пакет OpenPGPBlackbox нашего SecureBlackbox (версия Java), который обеспечивает полную поддержку OpenPGP, включая доступ LDAP к ключам и другим расширенным функциям.
Я написал полный код на Java с API BounceCastle и OpenPGP. В этом исходном коде вы найдете способ генерации пары ключей, шифрования и дешифрования файлов. Взгляните на: https://github.com/damico/OpenPgp-BounceCastle-Example
Попробуйте посмотреть эту тему. Я только что кратко остановился на этом, но я думаю, что это то, что вам нужно. http://sloanseaman.com/wordpress/2012/05/13/revisited-pgp-encryptiondecryption-in-java/
Попробуйте взглянуть на JCA CryptoSpec . Я не уверен в PGP, но я думаю, что вы можете найти там Провайдера для вашей цели.
Насколько я помню, код должен выглядеть примерно так:
// get cipher object for password-based encryption
Cipher cipher1 = Cipher.getInstance("PBEWithMD5AndDES");//You have to pass here algorithm name which PGP uses. May be you have to find and init provider for it.
// initialize cipher for decryption, using one of the
// init() methods that takes an AlgorithmParameters
// object, and pass it the algParams object from above
cipher1.init(Cipher.DECRYPT_MODE, myKey, algParams);
FileInputStream fis;
FileOutputStream fos;
CipherInputStream cis;
fis = new FileInputStream("/tmp/a.txt");
cis = new CipherInputStream(fis, cipher1);
fos = new FileOutputStream("/tmp/b.txt");
byte[] b = new byte[8];
int i = cis.read(b);
while (i != -1) {
fos.write(b, 0, i);
i = cis.read(b);
}
fos.close();
Вы можете написать простую оболочку вокруг GNU PGP, которая в основном выполняет команду GPG из Java.
Преимущество использования GNU PGP заключается в том, что вы не будете привязаны к определенной библиотеке. Объем документации и поддержки, доступной онлайн для сторонних библиотек, не так богат, как другие схемы шифрования, поскольку большинство из них вызывают PGP из командной строки.
Команда GPG для дешифрования является
echo "password" | gpg --passphrase-fd 0 --output plaintext.txt --decrypt encrypted.gpg
. Указывая парольную фразу, fd как 0 вы можете предоставить пароль через стандартный поток ввода.
Вот как выглядит код Java -
public static void decryptFile(String privKeyPass) {
String[] cmd = new String[];
int i = 7;
cmd[i++] = "gpg";
cmd[i++] = "--passphrase-fd";
cmd[i++] = "0";
cmd[i++] = "--output";
cmd[i++] = "plaintext.txt";
cmd[i++] = "--decrypt";
cmd[i++] = "encrypted.gpg";
Process process = Runtime.getRuntime().exec(cmd);
BufferedWriterout = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
out.write(privKeyPass);
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
// Read process.getInputStream()
// Read process.getErrorStream()
}