Click here to Skip to main content
15,868,141 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I encrypt data in client side using <a href="https://www.pidder.de/pidcrypt/?page=rsa">pidcrypt-rsa</a> with public key. I want to decrypt it in server side using php, I use <a href="http://phpseclib.sourceforge.net/rsa/examples.html#convert">phpseclib</a> for server side decrypting.
client side js code:

JavaScript
function Encrypt(value) {
	
		var public_key  = '-----BEGIN PUBLIC KEY-----\n\
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0\n\
FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/\n\
3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQAB\n\
-----END PUBLIC KEY-----';
		params = certParser(public_key);
        if(params.b64){
        var key = pidCryptUtil.decodeBase64(params.b64);
        //new RSA instance
        var rsa = new pidCrypt.RSA();
        //RSA encryption
        //ASN1 parsing
        var asn = pidCrypt.ASN1.decode(pidCryptUtil.toByteArray(key));
        var tree = asn.toHexTree();
        //setting the public key for encryption
        rsa.setPublicKeyFromASN(tree);
        
        crypted = rsa.encrypt(value);
		
        return pidCryptUtil.fragment(pidCryptUtil.encodeBase64(pidCryptUtil.convertFromHex(crypted)),64);
		}
		return 'error';
		}


server side code:
PHP
  <?php
	include 'Crypt/phpseclib0.3.8/Crypt/RSA.php';
	....
		$rsa = new Crypt_RSA();
		$private="<RSAKeyValue>
		  <Modulus>AKoYq6Q7UN7vOFmPr4fSq2NORXHBMKm8p7h4JnQU+quLRxvYll9cn8OBhIXq9SnCYkbzBVBkqN4ZyMM4vlSWy66wWdwLNYFDtEo1RJ6yZBExIaRVvX/eP6yRnpS1b7m7T2Uc2yPq1DnWzVI+sIGR51s1/ROnQZswkPJHh71PThln</Modulus>
		  <Exponent>AQAB</Exponent>
		  <P>AN4DDp+IhBca6QEjh4xlm3iexzLajXYrJid6vdWmh4T42nar5nem8Ax39o3ND9b1Zoj41F9zFQmuZ8/AgabreKU=</P>
		  <Q>AMQi+R0G9m0K+AcqK3DFpv4RD9jGc0Tle98heNYT7EQvZuuiq4XjvRz0ybqN//bOafrKhsTpRS9DQ7eEpKLI4Bs=</Q>
		  <DP>FklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5kX6zk7S0ljKtt2jny2+00VsBerQ==</DP>
		  <DQ>AJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2eplU9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhM=</DQ>
		  <InverseQ>EaiK5KhKNp9SFXuLVwQalvzyHk0FhnNZcZnfuwnlCxb6wnKg117fEfy91eHNTt5PzYPpf+xzD1FnP7/qsIninQ==</InverseQ>
		  <D>Fijko56+qGyN8M0RVyaRAXz++xTqHBLh3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxE=</D>
		</RSAKeyValue>";    // private key paste here
		
		$rsa->loadKey($public, CRYPT_RSA_PRIVATE_FORMAT_XML);
		
		$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
		
		$rsa->loadKey($private, CRYPT_RSA_PRIVATE_FORMAT_XML);
		//echo'my public key : '. $rsa->loadKey($private);
		$de =  $rsa->decrypt(base64_decode($name));
		echo $de;
....
?>


but it didn't echo any thing!
what I do wrong?
Posted
Comments
Richard Deeming 31-Oct-14 13:43pm    
Get an SSL certificate installed on your site, and make sure your page is only loaded over HTTPS.

That way, the system automatically encrypts any communication between the client and the server, and you don't need to do use any of this code. :)
Coder93 31-Oct-14 13:57pm    
thanks for your suggestion, I know that, but I want to implement some encryption/decryption using RSA.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900