HarmonyOS鸿蒙Next中string字符串的sha1加密方法

HarmonyOS鸿蒙Next中string字符串的sha1加密方法

import { hash } from '@kit.CoreFileKit';

public static Stringsha1Encrypt(String value)
{
  try {
    byte[]
    bt = value.getBytes();
    MessageDigest
    md = MessageDigest.getInstance("SHA-1");
    md.update(bt);
    byte[]
    input = md.digest();
    if (input.length > 0) {
      StringBuilder
      sb = new StringBuilder();
      for (byte
      b: input
      )
      {
        sb.append(String.format("%02x", b));
      }
      return sb.toString();
    }
  } catch (Exception e)
  {
    e.printStackTrace();
  }
  return null;
}

只看到文件路径的加密方法 我需要一个string字符串的 sha1加密,大佬们帮看一下


更多关于HarmonyOS鸿蒙Next中string字符串的sha1加密方法的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

参考如下demo

import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { buffer } from '@kit.ArkTS';
@Entry
@Component
struct index001 {
  async doMd() {
    let mdAlgName = 'SHA1'; // 摘要算法名
    let message = 'mdTestMessgae'; // 待摘要的数据
    let md = cryptoFramework.createMd(mdAlgName);
    // 数据量较少时,可以只做一次update,将数据全部传入,接口未对入参长度做限制
    await md.update({ data: new Uint8Array(buffer.from(message, 'utf-8').buffer) });
    let mdResult = await md.digest();
    console.info('Md result:' + mdResult.data);
    let mdLen = md.getMdLength();
    console.info("md len: " + mdLen);
  }
  build() {
    Button('获取密钥信息').width(100).height(100)
      .onClick(() => {
        this.doMd()
      })
  }
}

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-generate-message-digest-V5#支持的算法与规格

更多关于HarmonyOS鸿蒙Next中string字符串的sha1加密方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,可以使用ohos.security.crypto模块中的Crypto类来实现字符串的SHA1加密。具体步骤如下:

  1. 首先,导入所需的模块:

    import cryptoFramework from '[@ohos](/user/ohos).security.crypto';
    
  2. 创建一个SHA1加密实例:

    let sha1 = cryptoFramework.createHash('SHA1');
    
  3. 将字符串转换为Uint8Array格式,并更新到加密实例中:

    let input = 'your_string_here';
    let uint8Array = new TextEncoder().encode(input);
    sha1.update(uint8Array);
    
  4. 执行加密操作并获取结果:

    sha1.digest().then(digest => {
        let sha1Result = Array.from(new Uint8Array(digest)).map(byte => byte.toString(16).padStart(2, '0')).join('');
        console.log(sha1Result);
    });
    

这段代码将字符串进行SHA1加密,并输出加密后的十六进制字符串。

在HarmonyOS鸿蒙Next中,可以使用MessageDigest类来进行SHA1加密。以下是一个示例代码:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SHA1Util {
    public static String sha1(String input) {
        try {
            MessageDigest digest = MessageDigest.getInstance("SHA-1");
            byte[] result = digest.digest(input.getBytes());
            StringBuilder sb = new StringBuilder();
            for (byte b : result) {
                sb.append(String.format("%02x", b));
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }
}

调用SHA1Util.sha1("yourString")即可获取字符串的SHA1加密结果。

回到顶部