SHA384-算法解密(2)还原元数据

2023-10-10 23:30

本文主要是介绍SHA384-算法解密(2)还原元数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SHA384-算法解密(2)还原元数据

上一次的讲解比较潦草,这次写的更全面详细一些。
首先各位,如果想要解开使用这个算法加密后的数据,必须先学会加密,才能解密。
声明:这里仅供学习研究,不要学了三脚猫功夫就去惹麻烦

适用于HTTPS/HTTP ,SOCKET 传输的变量需要加密
apk,web,webGame 都适用 短变量类型
不适用 文本.超文本.大文件

1. 什么是SHA384

SHA是哈希混淆散列,散列算法又称杂凑算法或哈希算法,能将一定长度的消息计算出固定长度的字符串(也可以叫摘要算法)。SHA包含5个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,后四者并称为SHA-2。
我个人观察评判,且各个行业使用优先的排列:
sha256->sba384->sha512->sha1
SHA-384最大计算明文长度为2^128bit,属于分组算法,分组长度为1024bit,产生的信息摘要长度为384bit。SHA-384算法属于密码杂凑算法,原则上不能通过密文推出明文。

2. 组成元 \符 \号

  • 一组数据为一元或一单元
  • 一符 为一转义,偏移,单步
  • 一号 为一运算,公式,组合
效果
<<<1<<kgfedcbahabcdefghm
h[k]=h[k]+h<<<[1]h0~h7m’
mod
s0 s1
w[i]
>>>k
>>k
~
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
h0~h7:864bit双字,初始哈希值,也存放每组计算的当前哈希值
abcdefgh:864bit双字,存放中间变量
m:消息
m':填充后的消息
mod:模运算
s0,s1:字节扩展时中间变量
S0S1,ch,maj,temp1,temp2:循环迭代时中间变量
w[i]:第i个扩展双字
∧:64bit与运算
∨:64bit或运算
⊕:异或运算
>>>k:循环右移k比特运算
>>k:右移k比特运算
←:左向赋值运算符
~64bit双字按位取反
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||_|_|D|I|A|B|L|O|

<<<1<<k :1是元 k是符, 向左偏移了1位 得出的1,就是元数据了。
为什么叫 元?
现在输入一个字符串:
abc
填充后消息:
0x61 0x62 0x63 0x80 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x18
————————————————————————————————
这里不是主要讲解去理解怎么加密的,而是带入一下话题,好让大家整理一下思路;
这里主要是做解密,所以要懂一些基础的原理。现在我们大概知道了元符号是怎么回事啦;
然后看一下这组数据有什么规律,或无规律?
要加密的数值为 50
在这里插入图片描述
这套算法其实是有漏洞可寻的,某些大厂的加密解密委托我测试研究;
不论你使用的工具也好,还是在线脚本,或者自己编写一个工具编写生成。
他都会有变动,不是100%的固定值。
公式是 ([生成端]时间+[被生成]数据)+虚拟混淆段
更像是 VMP虚拟壳一样,把数值虚拟化了,要从虚拟化的数据中找到真正的值,在解开;
搞过破解的都知道VMP,让不少crack头疼,我也其中之一 哈哈哈!。。。最后还是解开
你任何时间都可以测试,比如早上9.00整 加密一个数值,你多次的加密是一个值,但9.01就变了一个值。也可能到10点前都不变动,随机性很大。所以摸清楚一个元符号的规律要花几个星期不等的时间。
没有必要的数值,最好不要浪费时间!
当我把我的惊奇发现公布了以后,不少人DISS我,怎么可能,你有那么厉害吗?
我这里澄清一下,我是蒙的,一蒙就对了!真的!
蒙一个对了,蒙个3,5个都对吗?是的!就是对了!!

话归正传

从上面的十六进制里,完全看不出什么规律。过一段时间,在生成一个50的加密数据出来
放入UE里,以十六进制编辑模式打开
在这里插入图片描述
此时,发现头步的 04变成了06,结尾的e没有变化。
我们把公式拿过来拆解一下,看看有什么发现没有。
在这里插入图片描述

h= g
g= f
f= e
e= d + temp1
d= c
c= b
b= a
a= temp1 + temp2
赋值初始哈希值a= h0
b= h1
c= h2
d= h3
e= h4
f= h5
g= h6
h= h7

只需要关注十六进制你要找出的值,其余都是虚拟,障眼法!会干扰你的思路。
你在代入公式的时候,不妨把h看做0,即为0x00= 00;
那按照这个假设06= h6对吧?h6=g,g=f,那最后f一步一步偏移回到h;
如果你学过编程,那么这种赋值方式,f=e g=f,原有的数值还是在的,只是重新排列而已?
我们看一下50的十六进制是多少。
在这里插入图片描述
那么变化成元就是= cec0 在变成赋值的初始哈希
h2h4h2h0 然后把这个初始哈希 找出来。
初始哈希值:
h0=0xcbbb9d5dc1059ed8,
h1=0x629a292a367cd507,
h2=0x9159015a3070dd17,
h3=0x152fecd8f70e5939,
h4=0x67332667ffc00b31,
h5=0x8eb44a8768581511,
h6=0xdb0c2e0d64f98fa7,
h7=0x47b5481dbefa4fa4
我们这里用代码演示啦!

var temp=["0x9159015a3070dd17",  //把它扔进数组变量里
"0x67332667ffc00b31",
"0x9159015a3070dd17",
"0xcbbb9d5dc1059ed8"];//这里迭代 80次
for(i from 0 to 79){S1= (e >>> 14)  (e >>> 18)  (e >>> 41)ch= (e∧ f)  ((~ e) ∧ g)temp1= h + S1 + ch + k[i] + w[i]S0= (a >>> 28)  (a >>> 34)  (a >>> 39)maj= (a∧b)  (a∧c)(b∧c)temp2= S0 + maj
}
h= g
g= f
f= e
e= d + temp1
d= c
c= b
b= a
a= temp1 + temp2

大概的加密算法,可能不完整,但我主要不是研究写加密,是教大家怎么解开!不要DISS我
temp1= h + S1 + ch + k[i] + w[i]
就是说 第一次运算出的值,是总值,总值再做一次运算
那么来推导一次;
h=9159015a3070dd1767332667ffc00b319159015a3070dd170xcbbb9d5dc1059ed8,
S1=字节扩展时的中间变量,ch=循环迭代时中间变量;
字节变量= 0000000000000000000000000000000000000000000000006162638000000000

循环变量=470994ad30873f88086c5b2d36a89178470994ad30873f88470994ad30873f88

k[3][5]][3][0]=e9b5dba58189dbbc59f111f1b605d019e9b5dba58189dbbc428a2f98d728ae22
这样庞大计算力,显然不是人力能够计算的,就算依靠计算机的运算,没有百年,也解不开。

那怎么计算呢?

还记得刚才我说的 比对两个文件十六进制吗?
把刚才推导得出的答案 元cec0 转换为初始值 9159015a3070dd1767332667ffc00b319159015a3070dd17cbbb9d5dc1059ed8
把他扔进UE 以十六进制编辑查看
在这里插入图片描述
元数值是没有偏移的,所以偏移4位看看,b和a 发现了35 30?我们把他们反转一下在看
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210308022850873.png在这里插入图片描述
此时我们已经加密解密SHA384 -成功!
但这有些投机取巧,如果数值在庞大一些怎么计算?
怎么保证每次都成功?
如果不知道原数值怎么计算呢?

我只公布一小段,代表这套算法已经能被破解了,其它的算法也一样。
我是一个游戏前端,只是喜欢研究花里胡哨的东西
越是说的厉害邪乎的东西,我越想破解
哪个公司能收我?
大菠萝

我是大菠萝,欢迎各位切磋技术

有疑问或者问题尽管提问,或者PK一下

这篇关于SHA384-算法解密(2)还原元数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/183867

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖