第三方应用怎么获取应用签名证书的hash值

第三方应用怎么获取应用签名证书的hash值

HarmonyOS
2024-01-30 18:57:48
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
onedolph

三方应用可以通过bundleManager.getBundleInfoForSelf()获取自身的应用包信息,其中入参bundleFlags指定所返回的BundleInfo中所包含的信息。

参考代码如下:

import bundleManager from '@ohos.bundle.bundleManager'; 
import { BusinessError } from '@ohos.base'; 
import hilog from '@ohos.hilog'; 
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT; 
try { 
    bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => { 
        hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(data)); 
    //data里可以获取到signatureInfo,即应用的签名证书信息 
    }).catch((err: BusinessError) => { 
        hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message); 
    }); 
} catch (err) { 
    let message = (err as BusinessError).message; 
    hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', message); 
}

signatureInfo.fingerprint是应用签名证书(.cer文件)的SHA256 hash值:

对于hash值,可使用加解密框架的hash算法,目前支持SHA1、SHA224、SHA256、SHA384、SHA512、MD5,参考代码如下:

let filePath = pathDir + "/test.txt"; 
Hash.hash(filePath, "sha256").then((str: string) => { 
  console.info("calculate file hash succeed:" + str); 
}).catch((err: BusinessError) => { 
  console.info("calculate file hash failed with error message: " + err.message + ", error code: " + err.code); 
});

参考链接

Hash.hash

分享
微博
QQ
微信
回复
2024-01-31 23:13:56
相关问题
如何获取应用签名证书hash
98浏览 • 1回复 待解决
第三方怎么装鸿蒙系统?
431浏览 • 1回复 待解决
HarmonyOS如何移植第三方MCU?
6940浏览 • 1回复 待解决
OHPM包管理怎么安装第三方
1795浏览 • 1回复 待解决
开发第三方SDK如何编译?
11471浏览 • 2回复 待解决
鸿蒙有哪些支持第三方UI框架吗?
1632浏览 • 1回复 待解决
三方应用如何获取蓝牙mac地址
183浏览 • 1回复 待解决
ArkTS API 9 Stage 如何引用第三方字体?
1187浏览 • 1回复 待解决
ArkTS不支持使用第三方js库?
1373浏览 • 1回复 待解决
如何获取可用三方
116浏览 • 1回复 待解决
在引用第三方组件代码时
3769浏览 • 1回复 待解决