Android Base64 кодировать и декодировать в PHP - PullRequest
0 голосов
/ 30 ноября 2018

Привет, я пытаюсь декодировать две строки, затем использовать возвращаемый результат (byte []), затем поместить его в конструктор Biginteger. Вот так:

BigInteger bigInteger1 = new BigInteger(1, Base64.decode(myString1,0));
BigInteger bigInteger2 = new BigInteger(1, Base64.decode(myString2,0));

, затем поместить этот BigIntegers в java.security.KeyFactory класс для создания RSAPublicKey , например:

KeyFactory.getInstance(ALG).generatePublic(new RSAPublicKeySpec(bigInteger1,bigInteger2));

, затем используйте мой открытый ключ для кодирования строки, например:

public static String encrypt(PublicKey publicKey, String str) {
 Cipher instance = Cipher.getInstance(ALG);
            instance.init(1, publicKey);
            Base64.encodeToString(instance.doFinal(str.getBytes()), 2);
}

на PHP .Я достигаю этой цели с помощью Android, но когда я хочу сделать это с PHP , у меня возникает много проблем даже на старте, когда я хочу декодировать свою строку в PHP с помощью этого кода:

$encoded = base64_decode($base,true);
$decoded = utf8_decode(base64_decode($encoded));

Я получу эту строку: ?? 2?] ???? 5N? [?? S

но в Android, декодированная строкаабсолютно разные и всегда остаются неизменными

Я пытался выполнить эту работу на JSP , но действительно трудно выучить новый язык, и у меня нетвремя.

Могу ли я сделать этот проект при весенней загрузке?У меня есть коды для Java

, пожалуйста, кто-нибудь, помогите мне.

1 Ответ

0 голосов
/ 30 ноября 2018

Вы декодируете строку дважды.Вам следует попробовать:

$encoded = base64_encode($base); // and not base64_decode
$decoded = base64_decode($encoded); // will be $base

utf8_decode преобразует строку с символами ISO-8859-1, кодированными с помощью UTF-8, в однобайтовый ISO-8859-1.Вы уверены, что вам это нужно?

В PHP вы можете использовать intval для выполнения BigInteger(), но я не уверен, что вы не столкнетесь с целочисленным переполнением.

Наконец, Библиотека OpenSSL непременно сделает работу по генерации ключей и шифрованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...