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

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

一、MAC算法


MAC算法是含有密钥的散列算法,兼容MD和SHA算法,在此基础上添加了密钥支持,因此也被称为Hmac算法,定义在RFC 2014中,分为两大分支MD和SHA分支:


MD分支:Hmac-MD2、Hmac-MD4、Hmac-MD5;


SHA分支:Hmac-SHA1、Hmac-SHA256、Hmac-SHA384、Hmac-SHA512、Hmac-SHA224等;


二、代码实现,以HmacSHA256为例


1、Java版


String bs= "逆向有你a";
SecretKeySpec key = new SecretKeySpec("12345".getBytes(StandardCharsets.UTF_8), "HmacSHA256");//申请一个密钥,长度内容随便写
Mac mac = Mac.getInstance("HmacSHA256");//告诉系统我用的加密码方式是HmacSHA256
mac.init(key);
byte[] macres = mac.doFinal(bs.getBytes(StandardCharsets.UTF_8));//开始加密
System.out.println("HmacSHA1加密(字节):"+Arrays.toString(macres));
System.out.println("HmacSHA1加密(字符串):"+bytes2HexString(macres));
SecretKeySpec key1 = new SecretKeySpec("12345".getBytes(StandardCharsets.UTF_8), "HmacSHA256");//申请一个密钥,长度内容随便写
Mac mac1 = Mac.getInstance("HmacSHA256");//告诉系统我用的加密码方式是HmacSHA256
mac1.init(key1);
mac1.update("逆向".getBytes(StandardCharsets.UTF_8));
mac1.update("有你".getBytes(StandardCharsets.UTF_8));
byte[] macres1 = mac1.doFinal("a".getBytes(StandardCharsets.UTF_8));
System.out.println(bytes2HexString(macres1));
运行结果:
HmacSHA1加密(字节):[9, 12, 15, -104, -34, 47, 127, -100, 1, 11, -92, 24, -101, 103, -45, -123, -45, 92, -2, -65, -29, 119, 111, 32, -1, 55, 10, -69, 66, -112, -68, -104]
HmacSHA1加密(字符串):090C0F98DE2F7F9C010BA4189B67D385D35CFEBFE3776F20FF370ABB4290BC98
090C0F98DE2F7F9C010BA4189B67D385D35CFEBFE3776F20FF370ABB4290BC98


2、JS版

var CryptoJS=module.exports;
function test()
{
    return CryptoJS.HmacSHA256("逆向有你a","12345").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
安卓逆向 -- 算法基础(SHA)
安卓逆向 -- 算法基础(SHA)
19 0
|
3月前
|
算法 JavaScript Java
安卓逆向 -- 算法基础(数字签名)
安卓逆向 -- 算法基础(数字签名)
21 1
|
3月前
|
算法 Android开发
安卓逆向 -- 自吐算法(MAC)
安卓逆向 -- 自吐算法(MAC)
22 1
|
3月前
|
移动开发 算法 安全
安卓逆向 -- 算法基础(Base64与HEX)
安卓逆向 -- 算法基础(Base64与HEX)
14 1
|
2月前
|
开发工具 git iOS开发
Mac 安装软件包管理工具Homebrew
Mac 安装软件包管理工具Homebrew
|
1天前
|
iOS开发 MacOS
mac下安装brew下载非常慢解决方法
mac下安装brew下载非常慢解决方法
|
8天前
|
Python
Mac上pyCharm找不到已安装的库
Mac上pyCharm找不到已安装的库
9 0