gpt4 book ai didi

使用 P12 证书的 Android 签名数据

转载 作者:太空狗 更新时间:2023-10-29 13:25:26 25 4
gpt4 key购买 nike

所以我四处搜索了一段时间,并没有真正找到我需要的东西(因为出现的每个结果都是关于签署实际包裹的)。所以基本上我要做的是 Web 服务受 session 管理器保护,为了获得 session 号,需要将 GUID 发送到 Web 服务。在 iOS 方面,我们能够获得此设置(因为开发 WebService 的团队有 iOS 开发人员在那里提供帮助)但是由于该团队或这里没有人在 Android 方面有很多经验,因此正在努力寻找了解如何做同样的事情。下面是我到目前为止尝试过的方法,但是生成的 GUID 由一些奇怪的字符组成并且不起作用,所以我暂时被困住了,同时我一直在寻找其他选项。

        String password = "password";
String text = "545048";
KeyStore keyStore = KeyStore.getInstance("pkcs12");
InputStream inputStream = activity.getResources().openRawResource(R.raw.am_client);
keyStore.load(inputStream, password.toCharArray());

String alias = keyStore.aliases().nextElement();
PrivateKey privateKey = (PrivateKey)keyStore.getKey(alias, password.toCharArray());
X509Certificate certificate = (X509Certificate)keyStore.getCertificate(alias);

//Sign Data
byte[] dataToSign = text.getBytes("UTF-8");
Signature signature1 = Signature.getInstance("SHA1WithRSA");
signature1.initSign(privateKey);
signature1.update(dataToSign);
byte[] signedData = signature1.sign();
String signed = new String(signedData, "UTF-8");
Log.d("MESSAGE", "string = " + signed);
//This is what comes up in the Log: ��m(N� �xp�r���K�V>G3b���M��W08 ���6#�͞�+�/�]�,�o���N"�$��uVa�ƾ�~��

最佳答案

我发现了问题,代码没问题,但是当我将文本转换为字节数组时,我使用了错误的格式 (UTF-8),因为服务使用的是 (UTF-16LE)。只需深入研究服务即可找到该解决方案。

关于使用 P12 证书的 Android 签名数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21765842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com