-1
我在android上使用spongycastle中的RSA进行加密/解密时出现问题。 enctext包含加密文本,而dectext包含解密后的文本。在调试器中,dectext与纯文本消息“test”相匹配,但当作为字符串传递给smssend(string,string)函数时,会显示一些未知格式。这里是代码。解密文本时遇到格式问题(Spongycastle)
{
byte[] enctext;
byte[] dectext;
String message="test";
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA", "SC");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SC");
keyGen.initialize(1024, random);
KeyPair pair = keyGen.generateKeyPair();
PrivateKey priv = pair.getPrivate();
PublicKey pub = pair.getPublic();
Cipher rsaCipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding","SC");
rsaCipher.init(Cipher.ENCRYPT_MODE, pub);
enctext=rsaCipher.doFinal(message.getBytes());
Cipher rsaCipher2 = Cipher.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding","SC");
rsaCipher2.init(Cipher.DECRYPT_MODE, priv);
dectext=rsaCipher2.doFinal(enctext);
sendSMS("5554",dectext.toString());// in debugger dectext shows equivalent "test" values in decimal but when passed as string to sendSMS func it shows some unknown format...
}
private void sendSMS(final String phoneNumber,String message)
{
}
这是什么问题?这是一些格式问题?我应该使用哪种格式?
谢谢你,那工作对我:) – Eshaal
我有另一个问题! String decstr = new String(dectext);工作完美,但是当我测试这个encstr = new String(enctext); byte [] new_encarr = encstr.getBytes();我在new_encarr中得到了相同的值:(,...我是编程新手......在学习阶段......你能帮忙吗 – Eshaal
你是不是指同一个值,它是另一个对象(即'=='会给出错误),但是数组中包含的字节应该是相同的,我将用一个示例来扩展答案,以便使用明确的编码,这有助于解决不同计算机上字节的问题 – Henry