찾아 주셔서 감사합니다. 최근 보안을 강화하기 위해 비대칭 기반 RSA 시스템에 서버에 설정 한 기존의 대칭 기반 암호화 시스템을 업데이트했습니다. 나 자신을 적당히 능숙한 PHP 프로그래머라고 생각할 것이다. 그 말로 phpseclib를 사용하여이 문제에 완전히 몰두했습니다.phpseclib 클래스에 여러 번 액세스하기
내 스크립트에서 클래스의 두 인스턴스를 만들 수없는 것 같습니다. 아래 코드를 참조하십시오 :
<?php include_once('Crypt/RSA.php');
function signRSA($string_to_sign){
$rsa = new Crypt_RSA();
$rsa->loadKey(file_get_contents('pvk.txt')); // private key
$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
$signature = $rsa->sign($string_to_sign);
return base64_encode($signature);
}
function decryptRSA($string_to_decrypt){
$rsa = new Crypt_RSA();
$rsa->loadKey(file_get_contents('pvk.txt')); // private key
return $rsa->decrypt(base64_decode($string_to_decrypt));
}
//Which ever function is on top is the only one that appears to work. The first line below will work, however the second will fail returning me a null value.
$sig = signRSA($_POST['data']);
$plain = decryptRSA($_POST['otherdata']);
?>
나는 '글로벌'변수를 개별적으로 만들려고 시도했습니다. 같은 일이 발생했습니다 ..
이 문제가 해결되기를 기대합니다.
UPDATE :
내가 성공적으로 나는 그것이 무슨 생각과는 아무 상관이없는 불구하고 내 문제를 방지 할 수 있었다. 위에서 본 클라이언트 응용 프로그램 (C#)과 PHP 끝이 두 가지 패딩 알고리즘을 사용하고있는 것처럼 보입니다. 이로 인해 클라이언트 응용 프로그램에서 데이터가 손상된 것으로 간주합니다. PHP 스크립트의 논리에서 위의 함수 중 하나만 작동하게되었습니다.
게시물을 제공해 주셔서 감사합니다. 내가 실제로 적절한 패딩 알고리즘을 C#에서 PHP로 연결하는 데 어려움을 겪고있는 것 같습니다. 이로 인해 해독 또는 서명 중 하나의 출력이 손상되었습니다 (클라이언트 응용 프로그램과 일치하지 않음). 나는이 문제가 phpseclib 생성자 내에서 거짓인지를 믿고있었습니다. 여기서 phpseclib 생성자는 여러 클래스 인스턴스를 만들 수 없었습니다. –