怎么写一个解密脚本

sh/bash/dash/ksh/zsh等Shell脚本
回复
anth
帖子: 172
注册时间: 2010-11-09 3:06

怎么写一个解密脚本

#1

帖子 anth » 2022-07-03 23:38

情况是这样的 由于害怕共用密码造成密码泄露 所以我的习惯是后续所有的密码都是随机生成 这个随机数再放进加密文件 脚本里有专门的一小节管理这个文件 我知道这个文件的结构和算法 也知道成功之后的输出是什么 现在难点在于没把握能解开 算法强度太高 密码强度不很高 所以不能确定是用哪个工具做 如果用python很可能跑到天荒地老跑不出来

算法在脚本里做了封装 基本原理是openssl aes和random混用 输出6位16进制字符再做一对一替换 这个不重要 我打算用循环做6位的试探 其实是12位 强度很高 另外6位我确信自己绝对没记错

输出函数e可以直接给图片出来 这个不需要保密

套取密码成功的判定可以用e baidu再egrep -v passwd命令确认是否有输出 因为enc21.passwd.remove会提示密码自动删除了

那么问题来了 一般6位密码普通家用机能跑出来吗
anth
帖子: 172
注册时间: 2010-11-09 3:06

Re: 怎么写一个解密脚本

#2

帖子 anth » 2022-07-03 23:40

补充代码 enc.d是aes解密 enc21是文件解密的控制方法
附件
image.jpg
anth
帖子: 172
注册时间: 2010-11-09 3:06

Re: 怎么写一个解密脚本

#3

帖子 anth » 2022-07-03 23:45

对了 随机数种子也不需要保密 也可以给出来 怎么根据这个种子写一个递增的顺序序列 不会 尤其是不会简单的做法
附件
image.jpg
anth
帖子: 172
注册时间: 2010-11-09 3:06

Re: 怎么写一个解密脚本

#4

帖子 anth » 2022-07-04 0:15

代测试密码生成已经完成 接下来就是效率问题了 很可能跑不下来
附件
image.jpg
anth
帖子: 172
注册时间: 2010-11-09 3:06

Re: 怎么写一个解密脚本

#5

帖子 anth » 2022-07-04 1:26

已经开始跑了 按这个速度大概六十小时能够跑出来 主要是aes比较费时间 电脑比较渣 python也慢 我现在算是发现了 linux下面最方便的做工具的方案就是在bash下面做 至于c++ python全部用指针或者字典做成类似bash扩展的工具
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 怎么写一个解密脚本

#6

帖子 lilydjwg » 2022-07-04 12:13

我直接用 https://github.com/jamessan/vim-gnupg 加密存放的。
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 怎么写一个解密脚本

#7

帖子 lilydjwg » 2022-07-04 12:14

如果你觉得你 aes 比较费时间的话,说明你的 aes 的效率确实太低了。大部分电脑的 CPU 有 aes 支持的,用那个会快非常多。
头像
astolia
论坛版主
帖子: 6450
注册时间: 2008-09-18 13:11

Re: 怎么写一个解密脚本

#8

帖子 astolia » 2022-07-04 12:45

anth 写了: 2022-07-04 1:26 按这个速度大概六十小时能够跑出来 主要是aes比较费时间
如果不是你文件有几十MB那么大,只能说明你的算法效率太低了。
openssl自己有benchmark,你可以自己试一下

代码: 全选

openssl speed -decrypt -bytes 65536 aes-256-cbc
在我的公司办公机器上(CPU是i7-9700K),上面命令在3秒内解密了59938个64k的块。也就是每秒能解密差不多4G的数据
anth
帖子: 172
注册时间: 2010-11-09 3:06

Re: 怎么写一个解密脚本

#9

帖子 anth » 2022-07-04 22:21

astolia 写了: 2022-07-04 12:45
anth 写了: 2022-07-04 1:26 按这个速度大概六十小时能够跑出来 主要是aes比较费时间
如果不是你文件有几十MB那么大,只能说明你的算法效率太低了。
openssl自己有benchmark,你可以自己试一下

代码: 全选

openssl speed -decrypt -bytes 65536 aes-256-cbc
在我的公司办公机器上(CPU是i7-9700K),上面命令在3秒内解密了59938个64k的块。也就是每秒能解密差不多4G的数据
我的电脑没有那么快 而且昨天估计时间有点不精确 大概相当于24小时6位16进制字符 这个速度相当于1.5小时6位10进制字符 和网上查询的结果0.5小时相差三倍 我认为这三倍是这么来的 首先是python调用bash aes走的subprocess方案很慢 每一个待测试密码都开启了一个新的进程 这个效率确实低下 这么做的原因是bash aes比python aes方便很多 要简单不要效率 更麻烦的是我用的不是aes cbc 而且另一个东西 那个东西在python没有直接给出算法 自己手动实现的话只能用python解密 所以代码通用性不高 为了后续维护方便这些代码都作废了只拿来练习 平时都是用的bash aes
附件
image.jpg
anth
帖子: 172
注册时间: 2010-11-09 3:06

Re: 怎么写一个解密脚本

#10

帖子 anth » 2022-07-04 22:28

哦 密码已经解决了 后续又做了时间测试 40秒解开3位16进制字符 相当于10秒解开3位10进制 15分钟解开5位10进制密码 这是我的算法的上限 再增加位数就要修改算法了 时间上有点受不了 昨天解密也是一样 解了两个小时以后我突然想到首位肯定不是o 那么我的个人习惯是有些特别的 直接把首位字符给猜出来了 后面5位解起来很快 这个事情让我知道加密强度不是那么重要 密码长度才是关键
anth
帖子: 172
注册时间: 2010-11-09 3:06

Re: 怎么写一个解密脚本

#11

帖子 anth » 2022-07-05 0:13

哦 对了 yay -S vim-gnupg之后试用了一下效果很好 但是我需要的enc系列工具主要是给手机用的 平时不带电脑 手机iPhone ish alpine的环境比较变态 apk search vim-gnupg没有显示 自己装的话又要解决alpine的各种疑难杂症 不想用了 自己那套enc函数跨平台很方便 不换了
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 怎么写一个解密脚本

#12

帖子 lilydjwg » 2022-07-05 9:43

加密强度也挺重要的(也是用长度衡量的;128位 AES 足够用了)。另外密钥派生函数(KDF)的选择也很重要。
回复