1

暗号化されたデータを ac# プロジェクトの一部として php に送信したいと考えています。PHP ページは、データを復号化して操作を実行し、再度暗号化して、C# アプリケーションに戻します。キーの外観に問題があります: rsa 秘密鍵:

uGUskwU/GVS1HjBVBa9ECPDRH04fH.............

php 秘密鍵:

----- RSA 秘密鍵の開始 ------ MIICXAIBAAKBgQDARufsW5Z9I+P96RdfDEq8r5XYaC ......

どうすれば2つを統合できますか、または暗号化以外に使用できるC#の別のクラスがありますか?

4

1 に答える 1

2

使ってみてください: http://phpseclib.sourceforge.net/

キーを生成します。

openssl genrsa -out private.pem 1024
openssl rsa -in private.pem -out public.pem -outform PEM -pubout

php にコピーします。

<?php
include('Crypt/RSA.php');

$privateKey="-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDr5KvAc6JX22BdpsfQbWam8rjkwJzTC954XQzhLOPeGiAGfkPm
CLYhBrmxZN6NxiseivpN9yzrRjYeccr+s3A/8q1EbdhmmM4+AxdNzATEsUxL//MS
VXCaoJhGOfXswokFT8HQod9M6VMmuyDaw9iEorLavV6J/nCmq2HIutcbbwIDAQAB
AoGBAMt2dgnN8zXSW2ELrIcDBapz6rQrylhigWXR5H0IKhb087CGEeyEkQsVcO8o
MKmaRrDWcKT00IKyEZXa0pszjFmD6f90H6TrV6BwZKEynAUVqaX4CCn6x9wgppMA
hWg3eYgoUME3Xgr1Iugb4rqtocEL7Vww/NoUgLXhzHH4RNz5AkEA+mZN2189Te3m
LmXFIJhV+GxrDmYrgJ0csjoEFHAxKJ52lsXTe1VODWbGWAv59jOrbUKe/aQaj4N1
IcTinF3jBQJBAPErTwBKvHznU9dC0eY+JRpwm4Xb9zCNqaG/Ir5N8Gc1U0YLJh9D
vRhtyT9+shwRPznklkc8DKwFaEU7HSiw9uMCQGLK9FLmG6jggN2zd3gpwlmWZRK0
StueoVDMRQnPTgXpp35LJOpXOMle0EiyyPdTYYJlM5d9JKGUyyT8qi/pdwUCQQCE
jp9vs6SCqsukh+/DM+lE7RwuqUbnAxZ39wzruP8oW2EYIMylZqArKzzwj3zqfHha
I9CN+u2kJ5y2YNWYJhytAkA53cDUSL9Wo9pq5hw1C1SWNcimteeQmfQ8f0SMegDW
fZ4rCjGczF82UpB12Cqo8SiK8xrCZAxfnSmSI248oCWe
-----END RSA PRIVATE KEY-----";
$publicKey="-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDr5KvAc6JX22BdpsfQbWam8rjk
wJzTC954XQzhLOPeGiAGfkPmCLYhBrmxZN6NxiseivpN9yzrRjYeccr+s3A/8q1E
bdhmmM4+AxdNzATEsUxL//MSVXCaoJhGOfXswokFT8HQod9M6VMmuyDaw9iEorLa
vV6J/nCmq2HIutcbbwIDAQAB
-----END PUBLIC KEY-----";

$rsa = new Crypt_RSA();
$rsa->loadKey($publicKey); // public key

$plaintext = 'I am a secret.. shhhhhh.';

$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$ciphertext = $rsa->encrypt($plaintext);

$rsa->loadKey($privateKey); // private key
echo $rsa->decrypt($ciphertext);
?>

別の鍵を使用することもできますが、php コードは C# 公開鍵を使用してデータを暗号化し、C# コードは php 公開鍵を使用して php コードに送信されるデータを暗号化する必要があります。

また、秘密鍵と公開鍵の 2 つの鍵のみを保持し、両側で使用することもできます。

C#側でこれを行うというこの回答を見てください:https://stackoverflow.com/a/1162519/2715306 そしてこれ:https://stackoverflow.com/a/251757/2715306

于 2013-08-25T13:59:19.363 に答える