php实现rsa算法加密算法,php 实现 rsa 加密算法

// given the variables as constants:

//Block size for encryption block cipher

private $ENCRYPT_BLOCK_SIZE = 200;// this for 2048 bit key for example, leaving some room

//Block size for decryption block cipher

private $DECRYPT_BLOCK_SIZE = 256;// this again for 2048 bit key

//For encryption we would use:

function encrypt_RSA($plainData, $privatePEMKey)

{

$encrypted = ‘‘;

$plainData = str_split($plainData, $this->ENCRYPT_BLOCK_SIZE);

foreach($plainData as $chunk)

{

$partialEncrypted = ‘‘;

//using for example OPENSSL_PKCS1_PADDING as padding

$encryptionOk = openssl_private_encrypt($chunk, $partialEncrypted, $privatePEMKey, OPENSSL_PKCS1_PADDING);

if($encryptionOk === false){return false;}//also you can return and error. If too big this will be false

$encrypted .= $partialEncrypted;

}

return base64_encode($encrypted);//encoding the whole binary String as MIME base 64

}

//For decryption we would use:

protected function decrypt_RSA($publicPEMKey, $data)

{

$decrypted = ‘‘;

//decode must be done before spliting for getting the binary String

$data = str_split(base64_decode($data), $this->DECRYPT_BLOCK_SIZE);

foreach($data as $chunk)

{

$partial = ‘‘;

//be sure to match padding

$decryptionOK = openssl_public_decrypt($chunk, $partial, $publicPEMKey, OPENSSL_PKCS1_PADDING);

if($decryptionOK === false){return false;}//here also processed errors in decryption. If too big this will be false

$decrypted .= $partial;

}

return $decrypted;

}

?>

原文:https://www.cnblogs.com/yuzhoumeigui/p/13695153.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值