Преобразование кода шифрования/дешифрования Java в PHP не работаетPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Преобразование кода шифрования/дешифрования Java в PHP не работает

Сообщение Anonymous »

У меня есть фрагмент кода Java для шифрования/дешифрования с использованием AES, и мне нужно преобразовать его в PHP для использования в моем веб-приложении. Я попробовал несколько подходов, но безуспешно. Ниже приведен код Java, который я пытаюсь преобразовать:

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

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

public class Main {
public static void main(String[] args) {

String encryptedData = "lmncpiedimdofipgnokfeppgfncimkac";
String secretKey = "0123456789ABCDEF"; // 16-character key
String iv = "0123456789ABCDEF"; // 16-character initialization vector

try {
String decryptedData = decrypt(encryptedData, secretKey, iv);
System.out.println("Decrypted data: " + decryptedData);
} catch (Exception e) {
System.err.println("Error while decrypting: " + e.getMessage());
e.printStackTrace();
}
}

public static String decrypt(String decData, String secretKey, String vector) throws Exception {
byte[] raw = secretKey.getBytes("utf-8");
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
IvParameterSpec iv = new IvParameterSpec(vector.getBytes("utf-8"));
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
byte[] encrypted1 = decodeBytes(decData);
byte[] original = cipher.doFinal(encrypted1);
return new String(original, "utf-8");
}

public static String encodeBytes(byte[] bytes) {
StringBuffer strBuf = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
strBuf.append((char) (((bytes[i] >> 4) & 0xF) + ((int) 'a')));
strBuf.append((char) (((bytes[i]) & 0xF) + ((int) 'a')));
}
return strBuf.toString();
}

public static byte[] decodeBytes(String str) {
byte[] bytes = new byte[str.length() / 2];
for (int i = 0; i < str.length(); i += 2) {
char c = str.charAt(i);
bytes[i / 2] = (byte) ((c - 'a') 

Он не возвращает никакого значения.

Подробнее здесь: https://stackoverflow.com/questions/784 ... es-not-wok
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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