Heim >Backend-Entwicklung >PHP-Tutorial >怎样对邮件正文分段加密及解密解决思路

怎样对邮件正文分段加密及解密解决思路

WBOY
WBOYOriginal
2016-06-13 10:10:301406Durchsuche

怎样对邮件正文分段加密及解密
--------php 源码-------------

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$mailcont = "邮件正文………超过1024字节………邮件正文";    $crtpath = "/usr/nc-home/webpost/mailbox/d00/1/y/u/yushuai.niu/.user/certkey/wxd.crt";    exec("chmod 777 {$crtpath}");    $fp = fopen($crtpath, "r");    $crt = fread($fp, 8192);    fclose($fp);    $pubKey = openssl_get_publickey($crt);    //从证书中解析公钥    $keyData = openssl_pkey_get_details($pubKey);    $blocks = str_split($mailcont, 1000);    foreach ($blocks as $block) {    //公钥加密    if (!openssl_public_encrypt($block, $chrtext, $keyData['key'])) {    echo "<br>" . openssl_error_string() . "<br>";    }    $chrtext .= $chrtext;    }    echo "chrtext-->>>$chrtext<br>";    $keypath = "/usr/nc-home/webpost/mailbox/d00/1/y/u/yushuai.niu/.user/secretkey/wxd.key";    exec("chmod 777 {$keypath}");    $fp = fopen($keypath, "r");    $key = fread($fp, 8192);    fclose($fp);    $cipher = openssl_pkey_get_private($key);    openssl_private_decrypt($chrtext, $dcyCont, $cipher);    echo "dcyCont-->>>$dcyCont<br>";

-------------------错误响应----------------
error:0906D06C:PEM routines:PEM_read_bio:no start line

error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size

chrtext-->>>叔??騈蕈50后帞 氧(蘗因T繥r'Um淤?/閥f貸f?,?? %vY筊諬?粁`樇昀?煲? ?枹??妎5傊([email protected]?)Q耂o瑂駾鉌t饧k[F0鴎叔??騈蕈50后帞 氧(蘗因T繥r'Um淤?/閥f貸f?,?? %vY筊諬?粁`樇昀?煲? ?枹??妎5傊([email protected]?)Q耂o瑂駾鉌t饧k[F0鴎
dcyCont-->>>
--------------------
证书及私钥 绝对正确,只是openssl_public_encrypt()函数貌似不能循环加密?求解!!!


------解决方案--------------------
文件太大了,把要加密的内容弄成一部分一部分进行加密
------解决方案--------------------
str_split($mailcont, 100); 你有可能把中文字符串给拆开了!
------解决方案--------------------
加密是大事,但是别的邮件服务商不会解你的密吧。纠结中。加还是不加
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn