RSA.php 1.3 KB

12345678910111213141516171819202122232425
  1. <?php
  2. include_once 'IcbcConstants.php';
  3. class RSA{
  4. public static function sign($content,$privateKey,$algorithm){
  5. if(IcbcConstants::$SIGN_SHA1RSA_ALGORITHMS == $algorithm){
  6. openssl_sign($content,$signature,"-----BEGIN PRIVATE KEY-----\n".$privateKey."\n-----END PRIVATE KEY-----", OPENSSL_ALGO_SHA1);
  7. }elseif (IcbcConstants::$SIGN_SHA256RSA_ALGORITHMS == $algorithm) {
  8. openssl_sign($content,$signature,"-----BEGIN PRIVATE KEY-----\n".$privateKey."\n-----END PRIVATE KEY-----", OPENSSL_ALGO_SHA256);
  9. }else{
  10. throw new Exception("Only support OPENSSL_ALGO_SHA1 or OPENSSL_ALGO_SHA256 algorithm signature!");
  11. }
  12. return base64_encode($signature);
  13. }
  14. public static function verify($content,$signature,$publicKey,$algorithm){
  15. if(IcbcConstants::$SIGN_SHA1RSA_ALGORITHMS == $algorithm){
  16. return openssl_verify($content,base64_decode($signature),"-----BEGIN PUBLIC KEY-----\n".$publicKey."\n-----END PUBLIC KEY-----", OPENSSL_ALGO_SHA1);
  17. }elseif (IcbcConstants::$SIGN_SHA256RSA_ALGORITHMS == $algorithm) {
  18. return openssl_verify($content,base64_decode($signature),"-----BEGIN PUBLIC KEY-----\n".$publicKey."\n-----END PUBLIC KEY-----", OPENSSL_ALGO_SHA256);
  19. }else{
  20. throw new Exception("Only support OPENSSL_ALGO_SHA1 or OPENSSL_ALGO_SHA256 algorithm signature verify!");
  21. }
  22. }
  23. }
  24. ?>