RSA加密解密演算法

2022-02-16 00:56:24 字數 3172 閱讀 4022

/*

* * rsa加密解密演算法

* class rsa */

class

rsa

if(false === strpos($public_key, '-----'))

}catch (\exception$e)

return

$public_key

; }

/*** 獲取pem格式的私鑰

* @param $private_key 私鑰檔案路徑或者字串

* @return bool|mixed|string

*/public

static

function private_key($private_key, $key_password='')

if(false === strpos($private_key, '-----'))

else}}

catch (\exception$e)

return

$private_key

; }

/*** rsa公鑰加密

* @param $decrypted 待加密字串

* @param $public_key 公鑰

* @return bool|string

*/public

static

function public_encrypt($decrypted, $public_key

)

$encrypted = base64_encode($encrypted

); openssl_free_key(

$publickey

);

unset($decrypted, $public_key, $publickey, $decrypt, $encrypt

); }

catch (\exception$e)

return

$encrypted

; }

/*** rsa私鑰加密

* @param $decrypted 待加密字串

* @param $private_key 私鑰

* @return bool|string

*/public

static

function private_encrypt($decrypted, $private_key, $key_password='')

$encrypted = base64_encode($encrypted

); openssl_free_key(

$privatekey

);

unset($decrypted, $private_key, $privatekey, $decrypt, $encrypt

); }

catch (\exception$e)

return

$encrypted

; }

/*** rsa公鑰解密

* @param $encrypted 待解密密文

* @param $public_key 公鑰

* @param string $key_password 證書密碼

* @return bool|string

*/public

static

function public_decrypt($encrypted, $public_key

)

openssl_free_key(

$publickey

);

unset($encrypted, $public_key, $publickey, $encrypt, $decrypt

); }

catch (\exception$e)

return

$decrypted

; }

/*** rsa私鑰解密

* @param $encrypted 待解密密文

* @param $private_key 私鑰

* @param string $key_password 證書密碼

* @return bool|string

*/public

static

function private_decrypt($encrypted, $private_key, $key_password='')

openssl_free_key(

$privatekey

);

unset($encrypted, $private_key, $privatekey, $encrypt, $decrypt

); }

catch (\exception$e)

return

$decrypted

; }

/*** 私鑰生成簽名

* @param $string 待簽名字串

* @param $private_key 私鑰

* @param string $key_password 證書密碼

* @return bool|string

*/public

static

function sign($string, $private_key, $key_password='')

catch (\exception$e)

return

$sign

; }

/*** 公鑰校驗簽名

* @param $string 待簽名字串

* @param $sign 簽名

* @param $public_key 公鑰

* @return bool

*/public

static

function verify($string, $sign, $public_key

)

catch (\exception$e)

return

$result === 1 ? true : false

; }

}

RSA加密解密

擷取自我的部落格 因為專案需要,最近做乙個rsa加密解密的介面,使用go進行開發,介面使用jsonrpc,go 對rsa加密解密有很好的支援,不過由於受限於底層微控制器,所以上層應用需要做一些稍微的調整。rsa是一種非對稱加密演算法,什麼是非對稱加密演算法呢,那就是公鑰 私鑰可互相進行加密解密 公鑰...

RSA加密解密

rsa加密使用公鑰加密,使用私鑰解密,rsa可以自己隨機生成一組公鑰和私鑰 rsa隨機生成一組公鑰和秘鑰 隨機生成公鑰和秘鑰 沒建立乙個rsacryptoserviceprovider物件,能生成一組隨機的秘鑰,物件相同不管執行多少次方法都是生成的同一組秘鑰 公鑰 私鑰 public static ...

RSA加密解密

rsautil.j a package com.soc.cloud.util import com.soc.cloud.exception.commonerror import com.soc.cloud.param.baseerrresult import com.soc.cloud.util.r...