DES加密算法通杀方法
一,了解java中的DES加密
1. 先看一段基本的DES加密代码。
algorithm:算法,如DES
key:根据算法对应的密钥
plainText:明文
// 生成Cipher对象
cipher = Cipher.getInstance(algorithm);
// 操作模式为加密(Cipher.ENCRYPT_MODE),key为密钥
cipher.init(Cipher.ENCRYPT_MODE, key);
// 得到加密后的字节数组
cipherText = cipher.doFinal(plainText.getBytes());
2. 上面简单实现了加密的过程。可以看到代码中主要的是cipher对象,并有以下调用
(1)Cipher对象需要传入一个参数algorithm。
(2)cipher对象使用需要三个参数("加密模式","密钥","向量")。
(3)cipher.doFinal()的调用要做数据转换,方法中传入的是一个byte数组。
实际上Cipher类实现了多种加密算法,在创建Cipher对象时,传入不同的参数就可以进行不同的加密算法。而这些算法不同的地方只是创建密匙的方法不同而已。
3. 创建密匙主要使用SecretKeySpec、KeyGenerator和KeyPairGenerator三个类来创建密匙。
二、解密实战
1.首先拿到DES加密样本,放入GDA反编译工具中进行查看,找到程序入口为:com.phone2.stop.activity.MainActivity。
进入j.a();方法,看到将拼接好的“h~m”字符串存入str,并放入数组f传入a.a(),返回str=h~mx。拿到DES算法加密密钥“h~mx”。
接下来在gwrxibberje.ofmvxveqv.oknctzzmzp.db.a中找到四段加密的密文,分别是
①16be6196e7e3d0253fa0c4311a7b3229
②cba18e2d797dde0e49d7bddec14256175acb86f0d9ee4a45
③16be6196e7e3d02514b53f46cac6e9f0f72927203283a7fe
④8d8ddffcdc53f5952d6f318d0398ac9feda7f36474f02f3d
使用DES在线解密工具,可以分别解密为:
① 用于发信手机号:18230324072
② 2015-10-19 23:59:00
③ 邮箱账户:18230324072@163.com
④ 密码:nhnwlbqanszlgddp
2.其实我们通过对算法主要类和方法的搜索,就可以快速定位加密的类型和位置。
搜索Cipher.getInstance,可以直接定位到设置加密算法的位置,如图。
搜索SecretKeySpec,可以直接定位到设置密钥的代码位置,如图。
三、算法通杀工具
我们可以借助调试工具来完成对加密算法的通杀,为大家介绍一款调试工具,叫做“算法助手”。打开算法助手,可以看到一共有两栏,分别为应用和日志。
在应用一栏中找到我们要调试的程序。点击进入后在算法分析一栏中,勾选摘要算法、含密钥信息摘要和加密算法三项。
点击右上角启动调试的目标程序,程序运行后返回加密算法页面,到日志一栏就可以看到抓取到算法相关数据了,进入查看详情,在解密密钥中可以看到文本内容为h~mx。并且可以看到所调用的堆栈,方便我们定位加密位置。
四、总结
掌握了以上关于DES加密算法的知识,相信大家对DES算法的定位与解密更加轻松了。通过手动分析代码,以及调试工具的辅助配合,能够最快速度解出加密的内容,后续我们也将推出更多关于安卓逆向和加密解密的内容。
安全为先,洞鉴未来,奇安信盘古石取证团队竭诚为您提供电子数据取证专业的解决方案与服务。如需试用,请联系奇安信各区域销售代表,或致电95015,期待您的来电!
“盘古石”团队是奇安信科技集团股份有限公司旗下专注于电子数据取证技术研发的团队,由来自国内最早从事电子数据取证的成员组成。盘古石团队以“安全为先,洞鉴未来”为使命,以“漏洞思维”解决电子数据取证难题,以“数据驱动安全”为技术思想,以安全赋能取证,研发新一代电子数据取证产品,产品涵盖计算机取证、移动终端取证、网络空间取证、IoT取证、取证数据分析平台等电子数据取证全领域产品和解决方案,为包括公安执法、党政机关、司法机关以及行政执法部门等提供全面专业的支持与服务。