RSA加密格式未知

时间:2015-07-17 21:06:36

标签: android string rsa

这种加密格式可以实现什么目标?

我的Android应用程序将加密邮件发送到c#服务器,但服务器希望加密邮件实际上就像这种未知格式chinese words

[![未知加密格式] [1]] [1]

但是android加密了这种格式的消息(on7vQhgNeVDVDu4evL0HZ5UbC2C1oZdamfU9XBLGZQZ13MLQKu2speIWNaldsfcGfPS

我在c sharp和android中使用RSA算法和相同的公钥/私钥。 我在哪里打断了?

这种未知格式的方法有问题。

似乎安卓有加密等级的问题我不知道还有什么需要用于此问题

感谢您的建议

Android代码

          public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.acti);
    try {
        generateKey();
    } catch (Exception e1) {
        e1.printStackTrace();
    }
}

public  static void generateKey() throws Exception {



    String modulusString = "tx94IV9NAutFU1HQjXmkLzknJ5vatOFyhD90Un3u5oiOc4e9fT1bsM0af3OqNMCTRLPuQJ2JQokY+3T0icJqHgG/aHvbmvDvRKn2QrVxAFt8EN6jp/S6+dRe1B/6eJbVRJJpeekLslqGqdQgr+5ocD+ZPjiE2iL6sGGyAYz+lOJtSr9N4ZcD4kNikI3J9kZDNO78rEqQuX7flh0RS79N63MJ9xX9fBuqHFIud3KKKbqHiASQoaU1rWqZ2VIdqfXzreZMYHpHYioVzyrbk/wdQQV2ibmJFAsa5aiKSP+g9rF4xYoPAistePDwn4O+wARGlMsu7RYVAIeUM77l+w6ugw==";
    String ExponentString = "AQAB";
    byte[] modulusBytes = Base64.decode(modulusString.getBytes("UTF-8"), Base64.DEFAULT);
    byte[] exponentBytes = Base64.decode(ExponentString.getBytes("UTF-8"),Base64.DEFAULT);
    BigInteger modulus = new BigInteger(1, modulusBytes);
    BigInteger publicExponent = new BigInteger(1, exponentBytes);


    KeyFactory fact = KeyFactory.getInstance("RSA");
    Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING");
    String INPUT = "GAVDOOL";

    RSAPublicKeySpec rsaPubKey = new RSAPublicKeySpec(modulus, publicExponent);
    PublicKey pubKey = fact.generatePublic(rsaPubKey);
    cipher.init(Cipher.ENCRYPT_MODE, pubKey);

  //  byte[] plainBytes = clearTextPassword.getBytes();
    byte[] cipherData = cipher.doFinal(INPUT.getBytes());
    String encryptedStringBase64 = Base64.encodeToString(cipherData, Base64.DEFAULT);
    System.out.println("Encrypted?????"+encryptedStringBase64);
    System.out.println(encryptedStringBase64.length());

          }
           }

未知的加密格式,请参阅[1]:http://i.stack.imgur.com/hF84B.jpg

2 个答案:

答案 0 :(得分:0)

从不调用加密(数据)方法?好像你有一些无法访问的代码...

答案 1 :(得分:0)

解决,

我终于更改了服务器代码并删除了Encoding.Unicode部分,现在这个问题就消失了。