ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ldy

[分享] 简单而强悍的文件加密工具

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-6-7 16:53 | 显示全部楼层
本帖已被收录到知识树中,索引项:保护和加密编程
原帖由 飞云楼主 于 2009-6-7 09:04 发表
如能在鼠标右键有加解密快捷方式更好。。

同意!
如果能做成批量加密/解密就更理想了!

TA的精华主题

TA的得分主题

发表于 2009-6-7 17:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
可识别字符仅中文就有上万个 ,按常用汉字5000 个计算 用5个汉字做密钥 就是 5000^5  依然是个天文数字,
大约3000000......00后面共17个0 ,如果密钥再长一点......用某个图片的二进制做密钥.....


简单的异或加密破解,破解一位和一百位密码是一样的容易的,本质上不存在差别,只要一位一位的来破解就成了。
,当然这种破解方式只对文本有效,因为文本有规率

TA的精华主题

TA的得分主题

发表于 2009-6-7 17:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-6-7 17:45 | 显示全部楼层
这是一个对称算法。明文用一个关键字做异或运算以产生密文。因为用同一只取一或两次就会付出原来的值,所以加密盒解密都严格采用同一个程序。
这种方法没有实际的保密性,它易于破译,甚至没有计算机也能破译,如果用计算机则只需花费几秒钟的时间就可破译。
假设明文是英文,而且假设密钥长度是一个任意小的字节数,下面是他的破译方法:
1、用重合码计数法(counting coincidence)找出密钥长度。用密文异或相对其本身的各种字节的位移,统计那些相等的字节。如果位移是密钥长度的倍数,那么超过6%的字节将是相等的,如果不是,则至多只有0.4%的字节是相等的(这里假设用一随机密钥来加密标准ASCII文本;其他类型的明文将有不同的数值),这叫做重合指数(index of coincidence)。指出密钥长度倍数的最小位移即密钥的长度。
2、按此长度移动密文,并且和自身异或。这样就消除了密钥,留下明文和移动了密钥长度的明文的异或。由于英语每字节有1.3位的实际信息(参见11.1节),因此有足够的冗余度去确定位移的解密。
尽管如此,一些软件销售商在兜售这种游戏式算法时,还声称“几乎和DES一样保密”,这使人感到震惊。NSA最终允许美国的数字蜂窝电话产业界使用这个算法(有160位的重复“密钥”)对语音保密。异或或许能防止你的小妹妹偷看你的文件,但却不能防止密码分析家在几分钟内破译它。

可以这么认为,如果你用异或进行加解密,那么跟直接保存明文就没有什么差别。因为一旦取得了密文,并且知道使用的是异或算法,那么剩下来的保密时间就在几秒钟到几小时之内。即使一个没有什么密码学知识的人,也可能写出一个什么工具来进行破解计算。或者说你如果采取了异或加密算法,那么整个系统的安全性就根本不在你手中,那么你加上这个算法和不加上又有什么区别呢?干脆不要加算了

TA的精华主题

TA的得分主题

发表于 2009-6-7 19:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 1楼 ldy 的帖子

谢谢,楼主分享
这样,可以防止第二个冠希gg的出现了

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-7 19:20 | 显示全部楼层
原帖由 彭希仁 于 2009-6-7 17:45 发表
这是一个对称算法。明文用一个关键字做异或运算以产生密文。因为用同一只取一或两次就会付出原来的值,所以加密盒解密都严格采用同一个程序。
这种方法没有实际的保密性,它易于破译,甚至没有计算机也能破译,如果 ...


不是很明白文章说的什么,又如何根据这个方法解密。下面这句话很费解,不知到那种理解方式正确

1
“而且假设密钥长度是一个任意小的字节数” 这句话的意思是指密钥为一个字节(0-255)吗?如果是那我同意,一个字节有什么强度?
最多循环256次,就能解密。因为我的密钥最少都是两个字节以上。

2
如果这句话的意思是 只要密钥不是太长(我理解就是几十个字节吧),解密英文文本是很简单事情。

“假设明文是英文,而且假设密钥长度是一个任意小的字节数,下面是他的破译方法:”根据这个假设我加密了一个文件。

那请彭兄用文章所说的方法解密一下这个纯文本的附件,原文内容是从MSDN上以复制的一段纯英文,里面有几个数字和英文标点符号。
换句话说都是单字节的字符。我用来加密的密钥也是英文的字母和数字和符号, 字符数在30个以内。
加密的文本.rar (649 Bytes, 下载次数: 163)

[ 本帖最后由 ldy 于 2009-6-7 19:22 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-6-7 20:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
太强了!!!!!!!!!

TA的精华主题

TA的得分主题

发表于 2009-6-7 22:08 | 显示全部楼层
本帖最后由 ExcelHome 于 2012-10-6 16:05 编辑

我同意彭兄的看法!永远没有保密的程序!难道你的东西比MD5还厉害,MD5不是也被中国人破解了吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-7 22:16 | 显示全部楼层
原帖由 wsri 于 2009-6-7 22:08 发表
我同意彭兄的看法!永远没有保密的程序!难道你的东西比MD5还厉害,MD5不是也被中国人破解了吗?


永远没有保密的程序! 这个我也同意,但解密需要时间。
莎士比亚的名著也不过就26个字母+标点的组合。随机组合也是可以组合出来的,问题是要多久?

既然你同意,希望你有自己的观点。那顺便问一句 这句话是啥意思:

“而且假设密钥长度是一个任意小的字节数”  是26楼的 1 还是2?

TA的精华主题

TA的得分主题

发表于 2009-6-7 22:52 | 显示全部楼层
原帖由 ldy 于 2009-6-7 16:45 发表

简体版文件繁体版打开的问题,源代码如下,你建立个模块复制进去好了

'原创ExcelHome LDY 26258103@163.com  2009-6-6
Sub xor加密()
    Dim keyStr As String, b1() As Byte, b2() As Byte, lenKey As Long ...

谢谢ldy斑斑的热心帮助:)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-5 10:26 , Processed in 0.048021 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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