开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

楼主: 落款hMZ
收起左侧

[易语言纯源码] [CryptAPI]纯windowsAPI计算AES/DEA/3DES,RSA加密解密,RSA签名验签,HMAC,散列等

    [复制链接]
结帖率:0% (0/1)
发表于 2018-2-7 13:11:44 | 显示全部楼层   安徽省芜湖市
好全的加解密例子
回复 支持 反对

使用道具 举报

签到天数: 9 天

发表于 2018-2-6 10:20:04 | 显示全部楼层   广东省汕头市
这个不错,支持
回复 支持 反对

使用道具 举报

发表于 2018-1-31 00:52:06 | 显示全部楼层   浙江省杭州市
QQ截图20180131005112.jpg zhe这个错误   libeay32.dll再发个 看看  阿里云的 下载不了了  
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2018-1-10 11:27:57 | 显示全部楼层   北京市北京市
这个不错,支持
回复 支持 反对

使用道具 举报

发表于 2018-1-8 01:36:56 | 显示全部楼层   广东省东莞市
不错的源码,谢谢分享
回复 支持 反对

使用道具 举报

发表于 2017-12-30 22:17:20 | 显示全部楼层   海南省海口市
谢谢分享!!!
回复 支持 反对

使用道具 举报

签到天数: 18 天

发表于 2017-12-12 10:42:16 | 显示全部楼层   广东省广州市
这个强啊。。。
回复 支持 反对

使用道具 举报

发表于 2017-12-6 13:55:36 | 显示全部楼层   四川省成都市
很强大,学习了
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:14% (1/7)
 楼主| 发表于 2017-11-25 00:40:54 | 显示全部楼层   湖北省孝感市
本帖最后由 落款hMZ 于 2017-11-25 00:55 编辑
续写幸福 发表于 2017-11-24 10:38
刚才试了下,确实是这样!

有时间的话看下这个源码!额外生成的密钥对不会出现这样的情况!

问题的原因找到了
先听我啰嗦一句

windows CryptAPI最可怕的地方在于:他并不是完全依靠密码学的计算来达到目的的,他为了达到目的可以动用一切手段
因此,当你调用密钥对生成函数的时候,系统会缓存你的公钥私钥信息,后来虽然你是在用公钥解密,但是实际上系统内部还是从缓存中找到了你的私钥,然后用私钥解的密。
如果你认为这样就可以解释了?那你错了,继续往下看
这个缓存,并不基于进程,也不基于你是否有开关机
也就是说,只要你用你的电脑生成过一个密钥对,他就会永远缓存你的密钥对,即使你关掉软件,关掉电脑,下次开机,再用这个公钥解密,他仍然还会找到你以前缓存的私钥
这样解释就结束了吗?
NO,还没有,还有更可怕的
openssl的机制跟windows不同,但是如果你在你的这个进程里调用了openssl 的密钥生成函数,他一样会缓存openssl生成的密钥对,然后你用公钥解密的话,他还是在缓存中找到了你的私钥用于解密

你以为我是在胡说八道?
测试方法:
1、去下载一个我曾经发表过的openssl帖子,用那个帖子生成公钥和私钥密钥对的PEM文件(注意,这个openssl帖子的例子可能有些问题,生成PEM文件的时候要用原始的RSA指针,不要跟我帖子里展示的一样,生成一个RSA指针后植入e、n、d 再生成PEM文件,这是不严禁的)
2、用上一步生成的PEM私钥公钥去测试,你会发现可以加密成功,但是不能解密了
3、在你的例子里加一个私钥解密,载入正规的私钥文件,解密。这时候按常理说,你应该能成功解密,毕竟公钥加密的确实可以用私钥解密
4、回过头再点你例子里的公钥解密,你会发现这次成功了,可以解密了,于是推论:因为你用私钥解密过,系统缓存了你的私钥,所以这次可以成功
5、关掉你的例子,重新打开,再点公钥解密,你会发现还可以解密,于是推论:这个缓存不基于进程,即使换了进程,一样解密
6、把openssl里生成PEM公钥私钥的那部分代码抠到你的程序里面,在你的程序里用openssl来生成公钥私钥,然后公钥加密,公钥解密,你会发现,仍然可以解密成功,于是推论:这个东西,连openssl生成的密钥对他都会缓存
7、关掉你的电脑,重启,再打开,再公钥加密公钥解密,仍然还可以成功,于是推论:除非重装系统了,否则这个缓存会永远存在
=============================================================
如果你还有别的电脑,那么还有个更简单的测试办法
就是你那个源码,放在别人电脑里生成两个PEM文件,复制到你的电脑里去,再调用公钥加密,公钥解密,会发现不行了,解密不出来了,然后你调用一下导入私钥解密,再调用公钥解密,就发现可以了

点评

谢谢   河北省廊坊市  发表于 2017-11-26 09:32
回复 支持 反对

使用道具 举报

结帖率:57% (13/23)

签到天数: 7 天

发表于 2017-11-24 10:49:24 | 显示全部楼层   北京市北京市
谢谢分享            
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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