WPS二次开发系列:如何获取应用签名SHA256值

在申请WPS SDK授权版时候需要开发者提供应用包名和签名,应用包名好说,那如何生成符合WPS要求的应用签名(SHA256)呢,经笔者亲测,有如下两种方式可以实现获取第三方应用签名值(SHA256)

1. 方法一:通过keytool命令查询

  1. 打开cmd命令行窗口
keytool -printcert -jarfile 安装包apk路径

如图所示

将上图标识的SHA256 内容 去掉冒号分割转换成小写即WPS SDK所需要的签名值

2 . 方法二:通过代码获取签名值(工具类)

通过 getAppSignatureSHA256 方法获取签名,这里得到的签名直接是WPS SDK所需要的签名值

//获取当前应用签名(SHA256)
public static String getAppSignatureSHA256(Context context){
        try {
            PackageInfo packageInfo = context.getPackageManager()
                    .getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);

            Signature[] signatures = packageInfo.signatures;
            if (signatures != null && signatures.length > 0) {
                for(Signature signature : signatures){
                    return getSHA(signature.toByteArray(),"SHA-256");
                }
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return null;
    }

// Helper method to compute SHA-1 hash
private static String getSHA(byte[] input,String algorithm){
        try {
            MessageDigest md = MessageDigest.getInstance(algorithm);
            byte[] digest = md.digest(input);
           return toHexString(digest);
//            return Base64.encode(digest);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

private static final char[] DIGITS_LOWER = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

//Hex.encodeHexString 
private static String toHexString(byte[] data){
        int l = data.length;
        char[] out = newchar[l << 1];
        // two characters form the hex value.
        for (int i = 0, j = 0; i < l; i++) {
            out[j++] = DIGITS_LOWER[(0xF0 & data[i]) >>> 4];
            out[j++] = DIGITS_LOWER[0x0F & data[i]];
        }
       return new String(out);
 }

更多介绍请阅读其它WPS二次开发系列文章,如果能够帮助到您,请动动发财的小手来个一键三连💪,老铁们有兴趣可以加Q群:250325397,吹牛摸鱼嗨起来!

相关推荐

  1. WPS开发系列如何使用WPS返回的FileUri

    2024-04-04 10:32:05       28 阅读
  2. WPS开发系列WPS SDK初始化

    2024-04-04 10:32:05       39 阅读
  3. WPS开发系列WPS SDK初始化

    2024-04-04 10:32:05       43 阅读
  4. Android Apk签名算法使用SHA256

    2024-04-04 10:32:05       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-04 10:32:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-04 10:32:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-04 10:32:05       82 阅读
  4. Python语言-面向对象

    2024-04-04 10:32:05       91 阅读

热门阅读

  1. 外汇MT4交易心得分享:如何规避常见交易陷阱?

    2024-04-04 10:32:05       33 阅读
  2. Docker客户端命令

    2024-04-04 10:32:05       41 阅读
  3. openharmony launcher 调研笔记 01

    2024-04-04 10:32:05       37 阅读
  4. Tomcat 启动闪退问题解决方法

    2024-04-04 10:32:05       34 阅读
  5. Kafka中groupid和auto.offset.reset的关系

    2024-04-04 10:32:05       38 阅读
  6. 谈谈Python中的ORM框架,如SQLAlchemy

    2024-04-04 10:32:05       34 阅读
  7. flutter 安卓打包自定义名字

    2024-04-04 10:32:05       34 阅读
  8. 常用的scss工具方法封装

    2024-04-04 10:32:05       33 阅读
  9. ubuntu thrift 编译和使用

    2024-04-04 10:32:05       33 阅读
  10. MFC 获取程序版本信息

    2024-04-04 10:32:05       40 阅读
  11. SAM Self-Attention based Deep Learning Method

    2024-04-04 10:32:05       37 阅读