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加密。具体步骤如下:
-
首先,导入所需的模块:
import cryptoFramework from '[@ohos](/user/ohos).security.crypto';
-
创建一个SHA1加密实例:
let sha1 = cryptoFramework.createHash('SHA1');
-
将字符串转换为
Uint8Array
格式,并更新到加密实例中:let input = 'your_string_here'; let uint8Array = new TextEncoder().encode(input); sha1.update(uint8Array);
-
执行加密操作并获取结果:
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加密结果。