图片缩略图

数据散列

版本1.7.1 (12 KB)
数组、结构、单元格或文件的MD5或SHA哈希

11.6 k下载

更新2019年5月19日

查看许可协议

DATAHASH-Matlab数组、结构、单元格或文件的哈希
Hash = DataHash(Data, Opts,…)
数据:内置类型数组(U)INT8/16/32/64, SINGLE, DOUBLE(真实或复杂)
CHAR, LOGICAL, CELL, STRUCT(标量或数组,嵌套),function_handle。
选项:字符向量列表:
散列方法:‘sha - 1’,‘sha - 256’,‘sha - 384’,‘sha - 512’,‘MD2’,‘MD5’。
输出格式:'hex', 'hex', 'double', 'uint8', 'base64'
输入类型:
'array':输入[Data]的内容、类型和大小
用于创建散列。嵌套的细胞
和STRUCT数组递归解析。空数组
不同的类型回复不同的哈希。
'file': [Data]被视为文件名并计算哈希值
文件内容。
“bin”:[Data]是数字、逻辑或字符数组。只有
考虑数组的二进制内容,例如
例如,不同类型的空数组回复相同的散列。
'ascii':与'bin'相同,但只是16位中的8位ascii部分
考虑Matlab CHARs。
哈希:字符串或数字向量。
例子:
默认值:MD5,十六进制:
数据散列([])%7de5637fd217d0e44e0082f4d79b3e73

Base64 sha - 1:
s.a. = uint8 ([]);
S.b = {{1:10}, struct('q', uint64(415))};
DataHash(S, 'base64', 'SHA-1') % ZMe4eUAp0G9TDrvSW0/Qc0gQ9/A

与使用ASCII字符串的标准哈希程序的比较:
数据哈希('abc','SHA-256','ascii')

Michael Kleder的“Compute Hash”工作原理类似,但不接受结构体、单元格或文件:
//www.tianjin-qmedu.com/matlabcentral/fileexchange/8944

"GetMD5"要快2到100倍,但它只回复MD5哈希值,而且需要c编译器:
//www.tianjin-qmedu.com/matlabcentral/fileexchange/25921

测试:Matlab 7.7, 7.8, 7.13, 8.6, 9.1, 9.5, Win7&10/64, Java: 1.3, 1.6, 1.7

欢迎提供报告和增强请求。请随意问我关于Matlab 6.5的版本。

MD5和SHA1哈希值是"broken":你可以构造一个数据集,它有一个特定的哈希值。但要检查文件的完整性或识别一组变量,这两种方法都是可靠的。

引用作为

1月(2021)。数据散列(//www.tianjin-qmedu.com/matlabcentral/fileexchange/31272-datahash), MATLAB中央文件交换。检索

MATLAB版本兼容性
使用R2016b创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始打猎吧!