我们的API平台使用CMAC-AES哈希作为请求的签名.我们有可用于在

Java和.NET中创建此哈希的库,但是也需要找到

PHP的解决方案.问题是我找不到任何似乎可靠地生成与我们的服务器上生成的CMAC或Java / .NET库相匹配的哈希的东西.

我找到的唯一一个库是CryptLib,一个alpha库.

但它并没有产生相同的哈希值,而且我对加密也不够好以理解为什么(它强制AES的块大小为16,当我在网上找到时说AES块大小为128).

我可以去其他任何途径吗?

最佳答案 上面的PHP-CryptLib库最终会正常工作.我的问题只是我自己的错误与二进制数据和十六进制数据有关.

使用库提供的测试数据之一

require_once 'lib/CryptLib/bootstrap.php';

$hasher = new CryptLib\MAC\Implementation\CMAC;

$key = '2b7e151628aed2a6abf7158809cf4f3c'; // from test/Data/Vectors/cmac-aes ...

$msg = '6bc1bee22e409f96e93d7e117393172a'; // from test/Data/Vectors/cmac-aes ...

$cmac = $hasher->generate($msg,$key);

echo $cmac;

// $cmac should be 070a16b46b4d4144f79bdd9dd04a287c

// actually getting ¢ nd{þ¯\ ¥á¼ÙWß­

除了CMAC hasher使用二进制数据而不是ascii字符,因此需要使用pack()打包它:

$key = pack("H*", '2b7e151628aed2a6abf7158809cf4f3c');

$msg = pack("H*", '6bc1bee22e409f96e93d7e117393172a');

我的具体实际案例是尝试散列任意字符串,例如:

$msg = 'Client|Guid-023-23023-23|Guid-0230-2402-252|string|123456|2012-11-08T20:55:34Z';

要做到这一点,我需要这样的功能:

function pack_str($str) {

$out_str = "";

$len = strlen($str);

for($i=0; $i

$out_str .= pack("c", ord(substr($str, $i, 1)));

}

return $out_str;

}

一旦数据被该函数打包并通过hasher运行,我就得到了我期待的CMAC哈希.

aes128 cmac java_使用PHP进行CMAC-AES散列相关推荐

  1. Java实现密码学工具,集成了对称加密算法DES,AES,IDEA,公开加密算法RSA,ECC,散列算法MD5,SHA1,CRC32,以及RSA,DSA,ECDSA数字签名验证示例。

    密码学综合工具 前言 git网址 项目结构 项目预览 String与byte[]互转 通过`String`类转换 通过`Base64`互转[jdk-8] 前言 我们网络信息安全的实验...要我们找各种 ...

  2. 【CMAC小脑网络】基于CMAC的目标分类matlab仿真

    1.软件版本 MATLAB2021a 2.本算法理论知识 程序流程如下所示: CMAC的基本原理为:对于每个输入,中只有个单元为1,而其余的均为0,因此是一个稀疏矩阵.哈希编码是压缩稀疏矩阵的常用技术 ...

  3. 0x06 木马免杀篇、0x07应急与响应、0x08 安全防御篇、0x09 其他问题篇

     来源如下图:(微信公众号:0x00实验室) 0x06 木马免杀篇         免杀可以先fuzz 定位出被查杀的语句,然后对被查杀那部分进行一波操作,像是加密啊.编 码啊.动态执行啊什么的,或者 ...

  4. 安服/渗透测试面试问题总结

    文章目录 HR面 问题 对我们公司有什么了解,为什么选择本公司 为什么想要应聘这个职位 对安全服务是怎么理解的 如果我不知道渗透测试,两分钟说一下 如果我是一个汽车厂商,你如何证明你的工作是有意义的? ...

  5. Get Offer —— 渗透测试岗试题汇总(Web相关知识点)

    点赞后看,养成习惯 喜欢的话 可以点个关注哟 你们的点赞支持对博主们来说很重要哦 !!! 为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 00 前情提要 01 Web相关知识点 1.漏洞类 2.情 ...

  6. aes128 cmac java_AES-与基于AES-的CMAC.doc

    本科实验报告 课程名称:信息与通信安全姓 名:邓敏 实 验:实验一系:信电系专 业:信息与通信工程学 号:3110100978指导教师:谢磊 年 月 日 AES 与基于AES 的CMAC 实验目的 1 ...

  7. 用C#实现AES-128 CMAC算法

    公司有个lora项目,要用到Lora-ns,虽然有其他公司现成的解决方案,但是需要有我们自己的个性化逻辑,因此需要重新手写NS的相关代码,根据semtech公司制定的协议标准编写了C#版本的lora- ...

  8. 消息验证码 MAC (HMAC、CMAC) 原理、特点

    MAC学习笔记 1. MAC的基本思想 消息验证码,利用密钥来生成一个固定长度的短数据块,并将该数据块附加到消息之后.假定通信双方比如A和B,共享密钥K.若A和B发送消息时,则A计算MAC,它是消息和 ...

  9. CMAC小脑模型神经网络与Python实现

    CMAC 小脑模型神经网络 简述 CMAC是cerebellar model articulation controller,一种模拟小脑的模型.小脑对肢体动作的操作是近似"反射" ...

最新文章

  1. 【linux】图形界面基础知识(X、X11、GNOME、Xorg、KDE的概念和它们之间的关系)
  2. 敏捷软件开发--计划
  3. redis集群安装和java应用
  4. Android经常使用工具类DateUtils(二)
  5. python开发编译器_python开发编译器
  6. k2p一直亮红灯搜不到信号_周迅感情亮红灯?真离了!?亮红灯英文是red light ?red 对了,但不用 light!...
  7. 【英语学习】【Level 07】U01 Making friends L5 A friend for a day
  8. 清华大学计算机系高考选科要求,清华大学新高考选课要求-清华大学新高考选考科目...
  9. 自动检测技术学习心得体会_关于传感器与检测技术的学习体会
  10. Python告诉你咪蒙10w+文章标题的秘密
  11. 如何检测文档里含有非英字符_知网检测是算字数还是字符
  12. LaTeX 排版(二)——排版数学公式
  13. 卷积核后输出维度shape计算公式
  14. SQL Server 数据库中添加文件组和数据文件
  15. 服务——Service
  16. 赛迪视点 | 新冠疫情下的中国集成电路产业发展
  17. Python基于改进Unet的新冠肺炎等级分割系统(源码&教程)
  18. mybatis源码过程学习梳理
  19. FASS-K8S云原生全闪存储解决方案
  20. Adobe部分软件PJ版

热门文章

  1. Visual C++ 游戏开发笔记 纹理映射技术(一)
  2. python的jieba库第一次中文分词记录
  3. 11g oracle controlfile 查询,Oracle 11G 隐含参数“_controlfile_autobackup_delay”
  4. java 线程状态监控_干货:教你如何监控 Java 线程池运行状态
  5. Safari常用的快捷键
  6. discuss php,category_discuss.php
  7. 你可千万别小瞧了自媒体这个行业,没有文化,适合自媒体创业吗?
  8. winpcap 查询 活动网卡_社保卡20周年惠民服务季之腾讯活动:社会保障卡的20年...
  9. pyqt5 布局 layout 收集
  10. elpida颗粒_ELPIDA(尔必达): 2rx8 PC3-10600S-9-10-F1是什么意思? 这是本本原装自带的内存。...