0

我在 Java 中有一个类,比如 A,它只有很少的方法和一些静态变量。

我正在 Android 中构建一个基于 WebView 的应用程序。我已经使用 addJavascriptInterface 方法注入了一个类 A 的实例。(该应用程序实际上是使用Phonegap)

我有一个 Javascript 函数,它使用传递给它的公钥 K(n, e) 执行 RSA 加密。

encryptString(n, e);

'n' 由 A 类的方法返回,调用如下:

var keyn = window.A.load("publicKey");

这是我有问题的地方。当我将 'n' 作为字符串传递,并且 'e' = "10001" 作为字符串传递时,加密效果很好。但是,当我通过从该方法接收到的 keyn 时,它不起作用。

encryptString("42342abcdefg2232", "10001"); // Works

encryptString(keyn, "10001"); // Doesn't work :(

我已经在 logcat 中记录了 keyn,它表明在变量 keyn 中正确接收了值。

那有什么问题呢?

PS:我尝试了两个不同的 RSA 加密库,并且两者都存在相同的问题。所以,很可能这不是我使用的加密代码的问题。

4

1 回答 1

0

我找到的解决方案是我通过keynnew String(keyn)并且它有效。在旅途中,我发现了 Javascript 中字符串文字和字符串对象之间的区别。我想WebView基本上返回一个Object,我们需要在将它传递给函数之前将它转换为字符串对象。

欢迎任何可以详细说明的人。

于 2013-03-28T11:30:41.640 回答