Advertisement
Guest User

RSA Sign & Verify v2

a guest
Nov 5th, 2016
5,919
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.43 KB | None | 0 0
  1. <?php
  2. include 'vendor/autoload.php';
  3. $plaintext  = 'Hello, this is a text written by me, John Doe.' . "\n" . time();
  4. //RSA-2048
  5. $privatekey = '-----BEGIN RSA PRIVATE KEY-----
  6. MIIEpQIBAAKCAQEAzANst0RirmL3vrPHIGxH+1fQMmEemcS7N+Gq5QY34m7imyc4
  7. wELe2DGQ0O8r5fcO3wO+1MlDwrZiTOvPBJZtTid4lGN5rjGJIIXrZ2eXEboUC3QN
  8. +gsZHTLQ5asJOMVEQYKRJN/TuMgmvvZmtEUDngsgXdoddqELld6Ha7DMV87/RUiS
  9. wD270XukDO+tnpjPiyiMwvaJGYtvBCKK9mAyctyWvcTt3j2cwD7NqzlokmTSWcol
  10. tS+xEHly5IcE+tFRag6wMSxhVzkDyz2D4Q3ZwSg/Opvd1AN85eo5ybaxZ0gdgBWs
  11. lRk2X4zNs7vJfVrIL0g8UKEg196UqZHxHLDqAQIDAQABAoIBAQCoCXoWSYFuWZ3t
  12. uW4eSpHPeDjIBi6KQPxjvsBf+4s0Oljzqo6X7XxXXhwFu7nQpHnfPtqDsXLaghbd
  13. fKz6/lvxr5klv/mNfMeRvjxy42QO+dFgzapldZat8hkV0pa55+Gcg8rBMIrW/CTN
  14. zW4ytVWRa2CxbOIvv94nBy9LiEgHWcEkUUmP4WyRW7PBOo6VRsv2pLbTsWXVTq7a
  15. am9wmG+WRFA8+RWUpQHrrC65++ORKGkApwMegtZ2z2WIwQ6pXjgMm0MoZZWlz9BA
  16. 09IcwCKiKYIOcnLOuB+r5j1Ff6VYueNFqst5+JNdQoOlDHMY7n1a2Ed3h3mKKtu9
  17. gX1vHnJxAoGBAP9jF5paK7jEykgaUtYy8S6z25J0CUOCslgMGEFTBP4ScVvzcm33
  18. B1VFsvCxvws4wjXKyomKDr8PBR/CGz9TXeUlTYNYQcV/1Fcyl8qrWdGVmIcsgQxm
  19. 3Y/ahOLQIORDGeek0OTTjPAiCTjzPAAWyNtQiIJ8xzDIcKREMjvhdmyXAoGBAMyA
  20. xNUb5wryZi0C9C4iFSe195sYk6Z+fPOkPl7VCgzUkpSbbBP5hlbhDNkEu9d5VYuT
  21. TfnkV6ZwvhQT1vlpZVcpGYAlazwLuXqu5hf7K5CSjH43P46W7NV70mlgh+u4HLN6
  22. V1izvM/vSrRqOSRMXWyqIyyxFZfhRgk+tQo7pXknAoGBAMGiRlEXsTLEsoJ8wvX5
  23. Zfh9Eiw2opd3TvWHJhTRd2WUYjLPoKFTvVGgKQ5qFmnRvR7ABVTHQmsGXmI38CTR
  24. ds24vM6raiLuyvbaO1DFHrLT8/P5gFcA31ik3ECEgYvQfKGvy1rUM3YWuFtfwMxo
  25. eh4fL4GQTg7kytMhidzxE7M9AoGBAL8/WVRXIM3a/PTxQzv1gcU+Zo30APj+Z4pO
  26. ukljgF+ZWG+DniJcA2cyVhqKU8Th4r+CBbVB9zpfS1NpbmyXRT+q3v85fzyLVm1G
  27. LUaWDRrKAnty3YxS1q+beZ40uUgXSTgLnK4GgPgQt9NbV477n48k2XpNLX15Hk89
  28. Bn/IYiqXAoGAChEI7E4d9XOYBonEJ6lD3LgxZ3uJkFZqNv32RqAILP8QVIyJO20W
  29. u2wuDg3yudn1vW9NMcIC9/ZVjvYC6QmJ4j6fj+h4pf6Cl7wvcVXprmXcKw0JbbLU
  30. qSJtJGv/Cyc00kOqr9AgeqzZ1KTa1NhxqGetdlb6FSqyEwp0V4dTtps=
  31. -----END RSA PRIVATE KEY-----';
  32. $publickey  = '-----BEGIN PUBLIC KEY-----
  33. MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzANst0RirmL3vrPHIGxH
  34. +1fQMmEemcS7N+Gq5QY34m7imyc4wELe2DGQ0O8r5fcO3wO+1MlDwrZiTOvPBJZt
  35. Tid4lGN5rjGJIIXrZ2eXEboUC3QN+gsZHTLQ5asJOMVEQYKRJN/TuMgmvvZmtEUD
  36. ngsgXdoddqELld6Ha7DMV87/RUiSwD270XukDO+tnpjPiyiMwvaJGYtvBCKK9mAy
  37. ctyWvcTt3j2cwD7NqzlokmTSWcoltS+xEHly5IcE+tFRag6wMSxhVzkDyz2D4Q3Z
  38. wSg/Opvd1AN85eo5ybaxZ0gdgBWslRk2X4zNs7vJfVrIL0g8UKEg196UqZHxHLDq
  39. AQIDAQAB
  40. -----END PUBLIC KEY-----';
  41. $signature = '';
  42. $status = '';
  43.  
  44. if (isset($_GET['action'])) {
  45.     $rsa = new \phpseclib\Crypt\RSA();
  46.     $rsa->setHash('sha512');
  47.     $rsa->setMGFHash('sha512');
  48.     $plaintext  = $_GET['plaintext'];
  49.     if ($_GET['action'] == 'sign') {
  50.         $privatekey = $_GET['privatekey'];
  51.         $rsa->loadKey($privatekey);
  52.         $signature = $rsa->sign($plaintext);
  53.         $signature = base64_encode($signature);
  54.     } else {
  55.         $publickey = $_GET['publickey'];
  56.         $signature = $_GET['signature'];
  57.         $rsa->loadKey($publickey);
  58.         $res = $rsa->verify($plaintext, base64_decode($signature));
  59.         $status = $res ? "Verification OK" : "Verification Failed";
  60.     }
  61. }
  62. ?>
  63.  
  64. <html>
  65. <head>
  66.     <title>RSA Sign & Verify v2</title>
  67. </head>
  68. <body>
  69.     <h1>Sign a text</h1>
  70.     <form action="rsa-sign-verify-v2.php">
  71.         <p><b>Input plain text</b></p>
  72.         <textarea name="plaintext" style="height:100px;width:600px;"><?php echo $plaintext;?></textarea><br>
  73.         <p><b>Input Private Key</b></p>
  74.         <textarea name="privatekey" style="height:100px;width:600px;"><?php echo $privatekey;?></textarea><br>
  75.         <input type="hidden" name="action" value="sign">
  76.         <input type="submit" value="Submit">
  77.     </form>
  78.     <p><b>Signature</b></p>
  79.     <textarea name="signature" style="height:100px;width:600px;"><?php echo $signature;?></textarea><br></p>
  80.     <br>
  81.     <hr><br>
  82.  
  83.     <h1>Verify a text</h1>
  84.     <form action="rsa-sign-verify-v2.php">
  85.         <p><b>Input plain text</b></p>
  86.         <textarea name="plaintext" style="height:100px;width:600px;"><?php echo $plaintext;?></textarea><br>
  87.         <p><b>Input Public Key</b></p>
  88.         <textarea name="publickey" style="height:100px;width:600px;"><?php echo $publickey;?></textarea><br>
  89.         <p><b>Input Signature</b></p>
  90.         <textarea name="signature" style="height:100px;width:600px;"><?php echo $signature;?></textarea><br></p>
  91.         <input type="hidden" name="action" value="verify">
  92.         <input type="submit" value="Submit">
  93.     </form>
  94.     <p><b>Verification result: </b><font color='red'><?php echo $status;?></font></p>
  95.     <p></p>
  96. </body>
  97. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement