资讯详情

最简单的RSA加密demo,初学者的保姆级即抄即用

/** * RSA加密 * @throws \Exception */     public function fingerprintUnlock($eb64_cry)     { 
                header("Content-type: text/html; charset=utf-8");         define('RSA_PUBLIC', '-----BEGIN PUBLIC KEY-----g/TQIDAQAB -----END PUBLIC KEY-----');         define('RSA_PRIVATE','-----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMBDr/ejmU/zfV f CZ9iv8ABzpBW ixut7FX4f7SIk R/HDRYmNgCbgHHciGrofJ46kVcQYStoyKJJmE drCVO6************************************************AaDxX6geVT E ihtOLlsp0j3jX8UpqsWH 2WD9NAgMBAAECgYBYcosQDEXqPuRtSdd aEo4BVzG kAy0xhZhUkGYHYlFO657JAf0GWk/LJ7p8fN2akz Kuv81D0AeEiQCx0i7PQvp6na WBcRib7qoKyK3cUJmtMt6ovpmufLKd9 fgvQwEYcucoMUU tvvhlERBEBJ54YsTU 3cVtrY fRQ********************************CWwp RHPF83fjVTu 9eAfK N7YkcOAg459 ud UxvsgyZh2JIFHtyOusNDYiQaX7PsCQQDbuce4BVJbhLAOUW T KNLn/CEgd4UCVg9wDjY6NnJGYV75zCPmEDQMWVz56KraEsDA/GIPfAiBSgcLWhK6 ekJXAkAxIHjF81jgqDj4UEUvxuRqUoYKgsPLPmxcF0QBlhcN9k5zlthefzgMkblo DHP7PXyZAEgPRlAm9jf3BZY/qPAjAkEAxBGuz14oVLQ9qjkvGCE4unw5T1B351LG ada0uxN0u6sN5lgsvJI 77oahoMBWqGbUVqlYm3q5Pwa9x1EUxTf9wJBAM8WJEn 6oa0KipqEiezWX/zUy8KhAR jv02YVOx0KE0eWDlie0yyV5h8PQ1WBuVvEutHw6q SvZ1NRs uqnJ3b4= -----END PRIVATE KEY-----');         ///公钥加密         $public_key = openssl_pkey_get_public(RSA_PUBLIC);         if(!$public_key){ 
                    die(‘公钥不能用’);         }         ///第一个参数是待加密的数据string,第二个参数是加密后的数据,第三个参数是openssl_pkey_get_public返回的资源类型,第四个参数是填充模式         $return_en = openssl_public_encrypt("努力学习,太逆天了", $crypted, $public_key);         if(!$return_en){ 
                    return(加密失败,请检查RSA秘钥');         }         $eb64_cry = base64_encode(
      
       $crypted
       )
       ; 
       echo 
       "公钥加密数据:"
       .
       $eb64_cry
       ; 
       echo 
       "<hr>"
       ; 
       //私钥解密 
       $private_key 
       = 
       openssl_pkey_get_private
       (
       RSA_PRIVATE
       )
       ; 
       if
       (
       !
       $private_key
       )
       { 
         
       // die('私钥不可用'); 
       return 
       false
       ; 
       } 
       $return_de 
       = 
       openssl_private_decrypt
       (
       base64_decode
       (
       $eb64_cry
       )
       , 
       $decrypted
       , 
       $private_key
       )
       ; 
       if
       (
       !
       $return_de
       )
       { 
         
       return
       (
       '解密失败,请检查RSA秘钥'
       )
       ; 
       return 
       false
       ; 
       } 
       return 
       $decrypted
       ; 
       echo 
       "私钥解密数据:"
       .
       $decrypted
       ; 
       echo 
       "<hr>"
       ; 
       echo 
       "<hr/>"
       ; 
       //私钥加密 
       $private_key 
       = 
       openssl_pkey_get_private
       (
       RSA_PRIVATE
       )
       ; 
       if
       (
       !
       $private_key
       )
       { 
         
       die
       (
       '私钥不可用'
       )
       ; 
       } 
       $return_en 
       = 
       openssl_private_encrypt
       (
       "hello world222222"
       , 
       $crypted
       , 
       $private_key
       )
       ; 
       if
       (
       !
       $return_en
       )
       { 
         
       return
       (
       '加密失败,请检查RSA秘钥'
       )
       ; 
       } 
       $eb64_cry 
       = 
       base64_encode
       (
       $crypted
       )
       ; 
       echo 
       "私钥加密数据"
       .
       $eb64_cry
       ; 
       echo 
       "<hr>"
       ; 
       //公钥解密 
       $public_key 
       = 
       openssl_pkey_get_public
       (
       RSA_PUBLIC
       )
       ; 
       if
       (
       !
       $public_key
       )
       { 
         
       die
       (
       '公钥不可用'
       )
       ; 
       } 
       $return_de 
       = 
       openssl_public_decrypt
       (
       base64_decode
       (
       $eb64_cry
       )
       , 
       $decrypted
       , 
       $public_key
       )
       ; 
       if
       (
       !
       $return_de
       )
       { 
         
       return
       (
       '解密失败,请检查RSA秘钥'
       )
       ; 
       } 
       echo 
       "公钥解密数据:"
       .
       $decrypted
       ; 
       echo 
       "<hr>"
       ; 
       } ` 
      

如果还是弄不明白,那么看这里: 作者首发文档

标签: gwk40温度传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台