Шифрование и дешифрование JavascriptJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Шифрование и дешифрование Javascript

Сообщение Anonymous »

Я пытаюсь создать функцию шифрования/дешифрования, аналогичную коду Java, приведенному ниже.

Код: Выделить всё

private static byte[] encryptPKCS7(byte[] plainData, PublicKey pubKey) throws
Exception {
CMSEnvelopedDataGenerator gen = new CMSEnvelopedDataGenerator();
JcaAlgorithmParametersConverter paramsConverter = new
JcaAlgorithmParametersConverter();
OAEPParameterSpec oaepParamSpec = new OAEPParameterSpec("SHA-256",
"MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT);
AlgorithmIdentifier algoId =
paramsConverter.getAlgorithmIdentifier(PKCSObjectIdentifiers.id_RSAES_OAEP,
oaepParamSpec);
JceKeyTransRecipientInfoGenerator recipInfo = new
JceKeyTransRecipientInfoGenerator(KEY_IDENTIFIER.getBytes(), algoId, pubKey)
.setProvider(bcProvider);
gen.addRecipientInfoGenerator(recipInfo);
CMSProcessableByteArray data = new CMSProcessableByteArray(plainData);
BcCMSContentEncryptorBuilder builder = new
BcCMSContentEncryptorBuilder(CMSAlgorithm.AES256_CBC);
CMSEnvelopedData enveloped = gen.generate(data, builder.build());
return enveloped.getEncoded();
}
Я придумал код JavaScript:

Код: Выделить всё

function decryptText(encryptedText) {
const privateKey = fs.readFileSync('PrivateKey.pem', 'utf8');
const encryptedBuffer = Buffer.from(encryptedText, 'base64');
const decryptedBuffer = crypto.privateDecrypt({
key: privateKey,
padding: crypto.constants.RSA_PKCS1_OAEP_PADDING,
oaepHash: 'sha256'
}, encryptedBuffer);
return decryptedBuffer.toString('utf8');
}
с помощью Forge

Код: Выделить всё

function encryptPKCS7(plainData, pubKey) {
const p7 = forge.pkcs7.createEnvelopedData();
p7.addRecipient(pubKey);
p7.content = forge.util.createBuffer(plainData, 'utf8');
p7.encrypt();
return forge.util.encode64(p7.toAsn1().getBytes());
}
Шифрование Java и JavaScript не совпадает.

Подробнее здесь: https://stackoverflow.com/questions/791 ... decryption
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»