安卓逆向 -- 算法基础(SHA)

简介: 安卓逆向 -- 算法基础(SHA)

一、SHA算法


SHA由美国标准与技术研究所(NIST)设计并于1993年发表,该版本称为SHA-0,由于很快被发现存在安全隐患,1995年发布了SHA-1。2002年,NIST分别发布了SHA-256、SHA-384、SHA-512,这些算法统称SHA-2。2008年又新增了SHA-224。由于SHA-1已经不太安全,目前SHA-2各版本已成为主流。


二、常用的SHA-256算法


1、SHA-256:32个字节、64个字符、256个bit


2、使用方式和MD5方法一样,只是传入算法名不一样


3、java版


String bs= "逆向有你a";
MessageDigest shasf=MessageDigest.getInstance("SHA-256");//我要用md5算法
shasf.update(bs.getBytes());//我要加密的数据
byte[] ressha = shasf.digest();//给我加密
System.out.println("SHA-256加密(字节):"+Arrays.toString(ressha));
System.out.println("SHA-256加密(字符串):"+bytes2HexString(ressha));
MessageDigest shasf1 = MessageDigest.getInstance("sha-256");
shasf1.update("逆向".getBytes(StandardCharsets.UTF_8));
shasf1.update("有你".getBytes(StandardCharsets.UTF_8));
byte[] ressha1 = shasf1.digest("a".getBytes(StandardCharsets.UTF_8));
System.out.println(bytes2HexString(ressha1));
运行结果:
SHA-256加密(字节):[-55, 52, -50, 36, -123, 97, 5, 78, -89, -81, -84, -15, -22, 80, 62, -1, -65, -124, -122, -49, -56, -56, 23, -2, 97, 99, -26, 71, 88, -111, 103, -88]
SHA-256加密(字符串):C934CE248561054EA7AFACF1EA503EFFBF8486CFC8C817FE6163E647589167A8
C934CE248561054EA7AFACF1EA503EFFBF8486CFC8C817FE6163E647589167A8

4、JS版,同样需要CryptoJS加密库配合

var CryptoJS=module.exports;
function test()
{
    return CryptoJS.SHA256("逆向有你a").toString().toUpperCase();
}
console.log(test());

禁止非法,后果自负

目录
相关文章
|
29天前
|
算法 Android开发
Android签名算法的原理
Android签名算法的原理
20 0
|
3月前
|
算法 Android开发
安卓逆向 -- 自吐算法(3DES和AES)
安卓逆向 -- 自吐算法(3DES和AES)
20 1
|
3月前
|
算法 Java Android开发
安卓逆向 -- NDK开发实现MD5算法
安卓逆向 -- NDK开发实现MD5算法
34 0
|
3月前
|
算法 JavaScript Java
安卓逆向 -- 算法基础(数字签名)
安卓逆向 -- 算法基础(数字签名)
21 1
|
3月前
|
算法 Android开发
安卓逆向 -- 自吐算法(MAC)
安卓逆向 -- 自吐算法(MAC)
22 1
|
11天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
26天前
|
机器学习/深度学习 算法
【MATLAB】GA_BP神经网络时序预测算法
【MATLAB】GA_BP神经网络时序预测算法
35 8
|
1天前
|
算法 数据安全/隐私保护 计算机视觉
基于DCT变换的彩色图像双重水印嵌入和提取算法matlab仿真
**算法摘要:** - 图形展示:展示灰度与彩色图像水印应用,主辅水印嵌入。 - 软件环境:MATLAB 2022a。 - 算法原理:双重水印,转换至YCbCr/YIQ,仅影响亮度;图像分割为M×N块,DCT变换后嵌入水印。 - 流程概览:两步水印嵌入,每步对应不同图示表示。 - 核心代码未提供。
|
1天前
|
机器学习/深度学习 算法 数据可视化
Matlab决策树、模糊C-均值聚类算法分析高校教师职称学历评分可视化
Matlab决策树、模糊C-均值聚类算法分析高校教师职称学历评分可视化
|
2天前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到"result.txt"以供MATLAB显示图像分割效果。