Расшифровка строки с помощью закрытого ключа (размер ключа RSA 2048)Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Расшифровка строки с помощью закрытого ключа (размер ключа RSA 2048)

Сообщение Anonymous »

Я работаю с API, который возвращает конфиденциальные данные. Эти данные необходимо будет расшифровать на стороне клиента с помощью пары ключей, сгенерированной клиентом.
Ниже приведена полезная нагрузка JSON, которая будет отправлена ​​на сервер. . Эта полезная нагрузка используется для шифрования конфиденциальных данных. Примечание. Я не контролирую сервер API.

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

{
"exponent": "010001"
"keyId": 0,
"identifier": "RSA Key Identifier",
"appName": "App name",
"modulus": "30820122300d06092a864886f70d01010105000382010f003082010a0282010100b88c1fe0246b1b34e76184e12a35fc68c45821c399482ed4ebf1c5f6ac79f8c10f331d65b000bc2b41b7e51303d4a2d5a685faf1e6069c30a3ddd25febdc02fa9758f7cbe31a6f464293754c441ec8a054543f15ec5af94a64da545056825963de18efa204889834bdaaeab65ec8497ee2f34c25c79b93272baee0a0f8ad4e0137959b01875f01d71c639e16ce1b894471e182f3322a500299b5366d798333eab5ee23e4662c4fd80a82d83ebc974c5196902c339003c43ca16bcbf9cfdf8ca2d507e94eac0909bef34c1277233337226b5e4ab797ea31ed89628353d3623ec34afaf8a267cf86bacc6dda059ded35d764ce6b1ebc5f328a9dacf8eeceb59a950203010001",
}
У меня нет никаких предварительных знаний в области криптографии, но я исследовал, как создать пару ключей RSA с помощью openssl.
Ниже Конфигурация, используемая для создания пары ключей RSA

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

$config = array(
"digest_alg" => "sha512",
"private_key_bits" => 2048,
"private_key_type" =>  OPENSSL_KEYTYPE_RSA,
);

//Continue to create the key PAIR//
$resource = openssl_pkey_new($config);
openssl_pkey_export($resource, $privateKey);

$pubKeyArr = openssl_pkey_get_details($resource);
$publicKey = $pubKeyArr["key"];

file_put_contents('publicKey',$publicKey);
file_put_contents('privateKey', $privateKey);
Ниже приведена копия сгенерированных мною открытых и закрытых ключей соответственно.

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

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuIwf4CRrGzTnYYThKjX8
aMRYIcOZSC7U6/HF9qx5+MEPMx1lsAC8K0G35RMD1KLVpoX68eYGnDCj3dJf69wC
+pdY98vjGm9GQpN1TEQeyKBUVD8V7Fr5SmTaVFBWgllj3hjvogSImDS9quq2XshJ
fuLzTCXHm5MnK67goPitTgE3lZsBh18B1xxjnhbOG4lEceGC8zIqUAKZtTZteYMz
6rXuI+RmLE/YCoLYPryXTFGWkCwzkAPEPKFry/nP34yi1QfpTqwJCb7zTBJ3IzM3
ImteSreX6jHtiWKDU9NiPsNK+viiZ8+Gusxt2gWd7TXXZM5rHrxfMoqdrPjuzrWa
lQIDAQAB
-----END PUBLIC KEY-----

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

-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC4jB/gJGsbNOdh
hOEqNfxoxFghw5lILtTr8cX2rHn4wQ8zHWWwALwrQbflEwPUotWmhfrx5gacMKPd
0l/r3AL6l1j3y+Mab0ZCk3VMRB7IoFRUPxXsWvlKZNpUUFaCWWPeGO+iBIiYNL2q
6rZeyEl+4vNMJcebkycrruCg+K1OATeVmwGHXwHXHGOeFs4biURx4YLzMipQApm1
Nm15gzPqte4j5GYsT9gKgtg+vJdMUZaQLDOQA8Q8oWvL+c/fjKLVB+lOrAkJvvNM
EncjMzcia15Kt5fqMe2JYoNT02I+w0r6+KJnz4a6zG3aBZ3tNddkzmsevF8yip2s
+O7OtZqVAgMBAAECggEAHDdee0qOLsF6vCQROj85WbplgDoUEl+Isg+MFVBfMMux
236b6Npf6tw4NfffjtAbywNysDAbpB9iupx7Coif0vk3guGjVkwbqbu6hD/pFgM/
iYcAvtvVAE0lvZzv8SuiM5fL8dFwIhd0RXDwE9NbO2GPUf33xD9uToVFNo93DfUq
qQ40KIMg9Y/DrpMFMOj/XDpRYRgVS76a+yAu9nZWO2Sz/ophR77zBIlSSNodphm7
JzhtqLFsvvWGld22kL657FpAXxLibgWKTthhOcO9EsPj6eWS8Q2cOCa29puMcIXb
j7PRWUOva4QV3i9teCs1o3crmDHGsqqig0+nMVyh6QKBgQDQoi48j2LNMtMJJLGE
t0w/IpAJSi4hSeYBrLGfG0WK8e9j3Wz7PsZ16eOasIZNKvAkSiAesWaZNFQ1+jLX
jAfRo1qJw+CCqBni4hB/9attL+UvhX93goUO+t99+qQdqnzSbGGl4L7Xa9mbrVsz
2qQ15A7lBKMcX5MwSW5W2gB6nQKBgQDicg1L5XY0qZUDx8De1N6UwE6rJ+VSmdPx
DoMUUMg0DPd7D7nkeHSzntC+qmaWqt8oEeauk97PPZATRknx6IcrcPf2SAmJb9TK
6bf52A2gqUjbHJT0NanIqVoYlZl/EfPOr18NuC/ul7qfyVBO3HWfQ1J9GySgWfLb
IFukZCDCWQKBgBHfMrLBXadSST2pRQOnaAKohUombpkvaWKPVo/YmDZ0zxrw5tsG
351OMc8YfAi0OuoA54t5it5o2yXcjupj9m+A3MqcWukWWVFUKDGt68doqOtPNkIY
jilgWDDEfbaE2jh0TFEXVYHCnVt2mC9y9UoghR4dLZPKpCMoxyjtd8kJAoGAc0in
Vk1i6ZqwX7VRjuCG1Oo24tIz4OKp0R6XQz+BPWaglAlElXlxyISBN6CfC/PAGrFK
ZPSpSY7JC9cMDFlaf5ZK1xqDqHHDvu5QGKWTAolMqyiY+N9dKeh2EvAOrm+gVUhZ
Ny3fUTPz8idWeF+qjkOC+mhYND628jI+FapYNzkCgYEAw8UpkbgdYGZTmbl1hsDT
g0jDyYFTiDOArqd/WQGBg6vO882/CZmdnn6ffUYEadWc74yfLqDtcQxsUevLoGnu
VbgT8n45PQ4tci3Da/LgzhpYryxpVGCQKhl5t8s6W3CWhf+DpT7eVzsMHE4seJso
CiGA3Ugc3EJQnhafcgF9yRA=
-----END PRIVATE KEY-----
Вот проблемы, с которыми я столкнулся.
  • Я не знаю, как сгенерировать модуль< /li>
    Я не знаю, как получить экспоненту для моих ключей
  • Я не знаю, как сгенерировать идентификатор > для ключей RSA, которые я сгенерировал ранее.
Вот что я пробовал.
Ответ от сервера API (в кодировке Base64)

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

$extendedDetails = '{"ExtendedDetails": {
"CardNumber": "{base64encryptedString}",
"ExpiryDate": "{base64encryptedString}",
"CVV2": "{base64encryptedString}",
"CardLimits": []
}}';

$cDetails = json_decode($extendedDetails, true);

$pan = base64_decode($cDetails['ExtendedDetails']['CardNumber']);
$exp = base64_decode($cDetails['ExtendedDetails']['ExpiryDate']);
$cv2 = base64_decode($cDetails['ExtendedDetails']['CVV2']);

$decryption_result = openssl_private_decrypt($pan, $decryptedPan, file_get_contents('privateKey'));

var_dump($decryption_result); // Returns bool(false)//
var_dump($decryptedPan); // Empty String//

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

openssl_private_decrypt
возвращает false, мои данные не расшифровываются.

Подробнее здесь: https://stackoverflow.com/questions/791 ... 8-key-size
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Расшифровка строки с помощью закрытого ключа (размер ключа RSA 2048)
    Anonymous » » в форуме Php
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Расшифровка файла .XML с использованием закрытого ключа RSA
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Расшифровка файла .XML с использованием закрытого ключа RSA
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Расшифровка файла .XML с использованием закрытого ключа RSA
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Шифрование Python RSA – использование закрытого ключа для шифрования и открытого ключа для расшифровки
    Anonymous » » в форуме Python
    0 Ответы
    166 Просмотры
    Последнее сообщение Anonymous

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