md.digest 计算的消息摘要与JDK计算的值不一致
有个特性需要计算文件的摘要信息。使用SHA-256算法做了计算,发现与java代码计算的结果不一致。
let md: cryptoFramework.Md;
try {
md = cryptoFramework.createMd('SHA256');
} catch (e) {
logger.error(TAG, 'createMd with SHA256 fail:' + JSON.parse(e));
expect(e).assertFail();
return;
}
let inputStream: fs.Stream | undefined = undefined;
try {
// let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
inputStream = await fs.createStream(filePath, 'r+');
let readLen = 256;
let readSize = 0;
while (readLen > 0) {
let buf = new ArrayBuffer(readLen);
readLen = await inputStream.read(buf, {
offset: readSize
});
readSize += readLen;
// arkTS 计算的数据类型为 Uint8Array
let inputDataBlob: cryptoFramework.DataBlob = {
data: new Uint8Array(buf)
}
await md.update(inputDataBlob);
}
// 计算结果
let mdDigest = await md.digest();
public static byte[] computeHashOfFile(String fileLocation, String hashType) {
MessageDigest md;
byte[] hash = null;
try {
md = MessageDigest.getInstance(hashType);
} catch (NoSuchAlgorithmException e) {
return null;
}
try (InputStream fis = new FileInputStream(fileLocation)) {
int n = 0;
int readSize = 0;
while (n != -1) {
byte[] buffer = new byte[256];
n = fis.read(buffer);
if (n > 0) {
md.update(buffer, 0, n);
readSize += n;
}
}
hash = md.digest();
} catch (IOException e) {
}
return hash;
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
Path组件绘制的线条粗细不一致
77浏览 • 1回复 待解决
docker 部署的iserver 操作日志时间与系统不一致
2373浏览 • 1回复 待解决
Tab控件中tabBar子控件之间的间距不一致
280浏览 • 1回复 待解决
签名不一致报错怎么回事?
1050浏览 • 1回复 待解决
napi里面,相同输入输出不一致
67浏览 • 1回复 待解决
文字空行高度与字体高度不一致
308浏览 • 1回复 待解决
redis 单线程 是不是就没有并发不一致的问题了
1606浏览 • 1回复 待解决
在HarmonyOS中子元素长度不一致的时候,如何方便的实现均分全部空间的布局
138浏览 • 1回复 待解决
上传软件包时提示“上传的软件包与声明支持设备不一致”
235浏览 • 1回复 待解决
mysql 主从复制数据不一致,出现l Error_code: 1032 错误什么原因啊?
589浏览 • 1回复 待解决
消息摘要计算这种类似加解密框架算法全是异步调用的,如何实现同步调用
98浏览 • 1回复 待解决
HUKS解密时,明文包含中文字符,解密后明文与原明文不一致
251浏览 • 1回复 待解决
HUKS解密时,若明文包含中文字符,则解密后明文与原明文不一致
364浏览 • 1回复 待解决
Native C++模版中,生成的so库的名称在哪里定义,需要与哪些内容保持一致
255浏览 • 1回复 待解决
HarmonyOS平台如何动画动态计算属性值,来动态实现子组件的更新
126浏览 • 1回复 待解决
移动边缘计算的基本想法是怎样的?
2108浏览 • 1回复 待解决
请问鸿蒙os对科学计算的支持怎样?
1006浏览 • 1回复 待解决
有谁知道如何计算文本的宽度
377浏览 • 1回复 待解决
对于话题下的参与人数如何计算?
1338浏览 • 2回复 待解决
为了满足不同场景下对一致性级别的要求,PolarDB 提供了哪三种一致性级别?
1505浏览 • 1回复 待解决
redis如何实现双读一致问题?
1301浏览 • 1回复 待解决
ArkTS里的数据类型转换方法有哪些?和TS是一致的吗
341浏览 • 1回复 待解决
一个应用的API Version和 compileSdkVersion 的版本号是一致的吗?
1463浏览 • 1回复 待解决
百度地图的坐标系影响距离计算吗?
1342浏览 • 1回复 待解决
ArkTS代码有误,参照以下方式书写