文档管理中心
FAQ系统开发安全加解密算法(Crypto Architecture)如何获取应用签名证书的hash值

如何获取应用签名证书的hash值

  • “应用指纹”signatureInfo.fingerprint是应用签名证书(.cer文件)的SHA-256哈希值,当前支持获取本应用的指纹。示例代码如下:
    收起
    自动换行
    深色代码主题
    复制
    1. import { bundleManager } from '@kit.AbilityKit';
    2. import { hilog } from '@kit.PerformanceAnalysisKit';
    3. import { BusinessError } from '@kit.BasicServicesKit';
    4. let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO;
    5. try {
    6. bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
    7. hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(data));
    8. // In the data, you can obtain the signtureInfo, which is the signature certificate information of the application
    9. }).catch((err: BusinessError) => {
    10. hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
    11. });
    12. } catch (err) {
    13. let message = (err as BusinessError).message;
    14. hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', message);
    15. }
  • 对于hash值,可使用加解密框架的hash算法,目前支持SHA1、SHA224、SHA256、SHA384、SHA512、MD5。示例代码如下:
    收起
    自动换行
    深色代码主题
    复制
    1. import { common } from '@kit.AbilityKit';
    2. import { BusinessError } from '@kit.BasicServicesKit';
    3. import { hash } from '@kit.CoreFileKit';
    4. let context = AppStorage.get("context") as common.UIAbilityContext;
    5. let pathDir = context.filesDir;
    6. let filePath = pathDir + "/test.txt";
    7. hash.hash(filePath, "sha256").then((str: string) => {
    8. console.info("calculate file hash succeed:" + str);
    9. }).catch((err: BusinessError) => {
    10. console.error("calculate file hash failed with error message: " + err.message + ", error code: " + err.code);
    11. });

参考链接

SignatureInfo

@ohos.file.hash (文件哈希处理)

在 FAQ 中进行搜索
请输入您想要搜索的关键词