HarmonyOS鸿蒙Next中sha512能否直接对字符串进行hash,api是要求输入文本路径

HarmonyOS鸿蒙Next中sha512能否直接对字符串进行hash,api是要求输入文本路径 sha512能否直接对字符串进行hash,api是要求输入文本路径

3 回复

目前是支持对string字符串进行hash sha256的 但是目前没有直接的api输入文本路径进行sha256 的摘要,但是可以先用fs读取文件的内容 返还字符串后 将字符串传入以下sha256的摘要方法中

以下为sha256 hash的摘要代码demo实例

import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { buffer, util } from '@kit.ArkTS';
@Component
struct MD5Crypto {
  @State message: string = '点击开始';
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            doMdBySync("")
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}
const base = new util.Base64Helper();
function doMdBySync(message:string) {
  let mdAlgName = 'SHA512'; // 摘要算法名
  let md = cryptoFramework.createMd(mdAlgName);
  md.updateSync({ data: new Uint8Array(buffer.from(message, 'utf-8').buffer) });
  let mdResult = md.digestSync();
  console.info('[Sync]:Md result base64:' + base.encodeToStringSync(mdResult.data));
  console.info('Md result hex:' + buffer.from(mdResult.data).toString('hex'));
  let mdLen = md.getMdLength();
  console.info("md len: " + mdLen);
}

更多关于HarmonyOS鸿蒙Next中sha512能否直接对字符串进行hash,api是要求输入文本路径的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,SHA-512哈希算法可以通过cryptoFramework模块实现。该模块提供了createHash方法来创建哈希对象,支持多种哈希算法,包括SHA-512。对于字符串的哈希操作,可以直接将字符串转换为Uint8Array类型的数据,然后传递给update方法进行哈希计算。以下是一个示例代码:

import cryptoFramework from '@ohos.security.cryptoFramework';

async function sha512Hash(input: string): Promise<string> {
    try {
        const hash = cryptoFramework.createHash('SHA512');
        await hash.init();
        const uint8Array = new TextEncoder().encode(input);
        await hash.update(uint8Array);
        const result = await hash.digest();
        return Array.from(result).map(byte => byte.toString(16).padStart(2, '0')).join('');
    } catch (error) {
        console.error('Hash error:', error);
        return '';
    }
}

此代码展示了如何对字符串进行SHA-512哈希计算。createHash方法创建了一个SHA-512哈希对象,update方法用于更新哈希对象的数据,digest方法最终生成哈希值。哈希值以16进制字符串的形式返回。

在HarmonyOS(鸿蒙Next)中,sha512哈希算法通常不直接支持对字符串进行哈希计算,而是需要输入文件的路径。API设计倾向于处理文件数据,而不是直接在内存中对字符串进行哈希。因此,若需对字符串进行哈希,需先将字符串写入临时文件,再使用API计算哈希值。

回到顶部