开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

楼主: 落款hMZ
收起左侧

[易源码分享] OPENSSL加密解密大集合

  [复制链接]
发表于 2020-8-6 21:39:12 | 显示全部楼层   福建省福州市
新技能已get√
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:14% (1/7)
 楼主| 发表于 2020-6-28 22:36:58 | 显示全部楼层   湖北省孝感市
xiao10183 发表于 2020-6-19 01:28
原始数据:
我爱易语言
易语言签名结果:luvEztvWAkbeN2wSE8rob8yxIAPkBPQzoSnw8VRpxBr5FYS2im4x0/1IsNId ...

字符编码问题,涉及中文的,要考虑UFT8还是GBK
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 4 天

发表于 2020-6-19 07:23:23 | 显示全部楼层   河北省石家庄市
一枚大牛,鉴定完毕
回复 支持 反对

使用道具 举报

结帖率:56% (5/9)
发表于 2020-6-19 01:28:38 | 显示全部楼层   云南省玉溪市
原始数据:
我爱易语言
易语言签名结果:luvEztvWAkbeN2wSE8rob8yxIAPkBPQzoSnw8VRpxBr5FYS2im4x0/1IsNId0L3utdsJy1RxOlh/0cSINsGk8MevbzTo8nA0sYFqRbqA5ZSBkeETlb/XrnyEzRkzTNdF5Nh3YIO/5mqEvwS6gVOGAhdCfZAzedk08nzrLUstPaM=
  
子程序名返回值类型公开备 注
_按钮4_被单击  
变量名类 型静态数组备 注
原始数据字节集 
密文字节集 
明文字节集 
sign文本型 
rsa整数型 
文本内容文本型 
rsa2整数型 
' 调试输出 (“=======================公钥加密私钥解密=======================”)
原始数据 = 到字节集 (“我爱易语言”)
' 密文 = RSA加密_公钥加密 (全局RSA指针, 原始数据, #RSA填充_RSA_PKCS1_PADDING)
' 调试输出 (bin2hex_ (密文))
' 明文 = RSA解密_私钥解密 (全局RSA指针, 密文, #RSA填充_RSA_PKCS1_PADDING)
' 调试输出 (到文本 (明文))
' 调试输出 (“===============================================================”)
调试输出 (“=======================签名=======================”)
rsa = PEM_载入私钥 (到文本 (读入文件 (“C:\Users\Administrator\Downloads\config\私钥.pem”)), )
sign = RSA签名_sha256 (原始数据, rsa)
调试输出 (sign)
RSA_释放指针 (rsa)
调试输出 (“=======================验证=======================”)
rsa2 = PEM_载入公钥 (到文本 (读入文件 (“C:\Users\Administrator\Downloads\config\公钥.pem”)))
调试输出 (RSA验签_sha256 (原始数据, sign, rsa2))
RSA_释放指针 (rsa2)
调试输出 (“===============================================================”)


i支持库列表   支持库注释   
spec特殊功能支持库



PHP签名结果:
mY9EOonAcfUGL6+iDtTVonvYjzTr+uf6FCQwWuZt0H0DpvPApORR51dAZ6uBw4boeWvj4VFfMWErhiuB42aSic5L7fZDj+CKjJXxevOqCU+uJGvMMLoSLLacgUc+QHGEBP8PDCjKAEcQB09+qJdCWsHR5ngau/aE/o6pQL4a90o=


源代码:
  1.     public function SignVerify($data)
  2.     {
  3.         $private_key = file_get_contents(dirname(__FILE__).'/pem/pr.pem');
  4.         $priv_key_id = openssl_get_privatekey($private_key);
  5.         $verify = openssl_sign($data, $signature, $priv_key_id,OPENSSL_ALGO_MD5);
  6.         openssl_free_key($priv_key_id);
  7.         return base64_encode($signature);

  8.     }
  9.     public function CheckSignVerify($data,$sign)
  10.     {
  11.         $signv1 = base64_decode($sign);
  12.         $public_key = file_get_contents(dirname(__FILE__).'/pem/pu.pem');
  13.         $pub_key_id = openssl_get_publickey($public_key);
  14.         $ok = openssl_verify($data, $signv1, $pub_key_id,OPENSSL_ALGO_MD5);
  15.         openssl_free_key($pub_key_id);
  16.         return $ok;
  17.     }
复制代码


PHP 验证签名通过  RSA在线工具针对PHP的签名均可验证通过


RSA在线工具针对易语言的签名均不能验证通过


01-1.png
01-2.png
01-3.png
01-4.png
01-5.png

RSA 公钥:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3jAFADtPJo5RnQrtcOOg6atGJ
10njxh8MJ9NKEQJ1Te5+cIP1AFxY9Mpm4bYRe3xde29T9GnF9ivm67LzCp64I8mc
uHtqIoZ80zYUhaOiT0aJg3pqu/JUk1dOBdPuG+d+BlgWdz8lu8FZ6bSZj+9PuObF
iOUfLFD3y+sTNqQf8QIDAQAB
-----END PUBLIC KEY-----

RSA 私钥:
-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALeMAUAO08mjlGdC
u1w46Dpq0YnXSePGHwwn00oRAnVN7n5wg/UAXFj0ymbhthF7fF17b1P0acX2K+br
svMKnrgjyZy4e2oihnzTNhSFo6JPRomDemq78lSTV04F0+4b534GWBZ3PyW7wVnp
tJmP70+45sWI5R8sUPfL6xM2pB/xAgMBAAECgYB1Dyh49zvhPJ9YH/ooPe712sxa
ceChEOkaMogRk7mSoKo7H305EwrSfQRdCxS4H55YbHG7BIU1CORE+Qt+78X7K9Gr
yTWJ9R5ZKviN+T6rPfK5nc1qUMuJCFdseNhcnjmevTkJrGbc9npMCXspnw/EoBm9
mugfDJPgdDrTvUp1sQJBAM8X+p1mDlrLfEWJckv1WoNIAa2hDHQYXqmPiG2tU6Sv
/bCjBFeDxhXlB89UQ2W6fThtvLLJoILv1GUdWvFLlGECQQDHNiCTOCUAwIr9elND
fL4Z4L8VEZHvqc0TIrEyBn8YI412sD/NSHrStz/EOEAsbcOrw6B932/nLOuK5dsv
IM5TAkEArmDyljapP6q4KZViuLMQVBr9zsYdRmR+0SgbKL8Z/0Jxy5p4vXgoA6em
u92oIrC1YB6HFcTRc2+e2MWvHh8WAQJBAMLKr5Gk/bG9lGsFOPOtv2kodVARrSSv
YaLLcn7bEV22LfaXotuFeuweWZDx+/Y1onaLRJywZgijyPI5jliH+JcCQARi2Xmi
G0vIftm8lxwCVfBOvpogcpW7RmZ9W3ICs18KUJ2Ym670OQA/J7pj1js9d8gsycsi
GqfEqmojrOyLTIU=
-----END PRIVATE KEY-----





回复 支持 反对

使用道具 举报

发表于 2020-6-5 18:49:31 | 显示全部楼层   山西省太原市
委屈二位人情味
回复 支持 反对

使用道具 举报

结帖率:93% (124/133)

签到天数: 21 天

发表于 2020-4-15 22:54:59 | 显示全部楼层   广东省广州市
落款hMZ 发表于 2020-4-15 19:50
我的另外一个帖子里有

找到了谢谢!!!
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:14% (1/7)
 楼主| 发表于 2020-4-15 19:50:50 | 显示全部楼层   广东省中山市
chendipang 发表于 2020-4-15 19:43
RSA签名  有例子嘛   源码里面好像没找到签名的调用例子

我的另外一个帖子里有
回复 支持 反对

使用道具 举报

结帖率:93% (124/133)

签到天数: 21 天

发表于 2020-4-15 19:43:32 | 显示全部楼层   广东省广州市
RSA签名  有例子嘛   源码里面好像没找到签名的调用例子
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:14% (1/7)
 楼主| 发表于 2020-4-11 20:38:34 | 显示全部楼层   广东省中山市
zyxcba 发表于 2020-3-25 20:31
有哪位大佬可以补充下分片的操作嘛

不会有任何人直接用SSL加密很长的数据,没有必要,一般正确的做法是先生成一串随机字符串作为密钥,把长文本用RC4或者AES加密,然后把密钥用SSL加密,补在所有密文的头部,这就叫数字信封。

SSL的计算是非常消耗计算机资源的工作,加密的过程也非常的慢,而且如果用SSL加密很长的数据,安全性会下降很多,所以直接用SSL加密长数据是没有必要甚至错误的做法。
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)
发表于 2020-3-25 20:31:34 | 显示全部楼层   广东省深圳市
有哪位大佬可以补充下分片的操作嘛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表