【发布时间】:2011-04-19 19:55:05
【问题描述】:
我需要从 Javascript 访问 SecureRandom Java 对象。我的最终目标是从 PRNG 中获取 4 个字节并将其转换为 Javascript 整数变量。根据http://download.oracle.com/javase/1.4.2/docs/api/java/security/SecureRandom.html,以下两行Java代码应该是抓取4个随机字节:
byte bytes[] = new byte[4];
random.nextBytes(bytes);
我的问题是我不知道如何 1)分配适合传递给Java方法的字节数组 2) 之后将该数组解析为整数
到目前为止,我已经设法返回一个随机字节数组的 getSeed() 方法。当我在 Firefox 中呈现下面提供的 HTML 代码时,它显示“[B@16f70a4”,这似乎是一个指针或其他东西。
<script>
var sprng = new java.security.SecureRandom();
random = sprng.getSeed(4);
document.write(random + "<br/>\n");
</script>
这让我觉得我成功实例化和访问Java类,但是类型转换有问题。
谁能帮我写出 allocateJavaByteArray(N) 和 convertJavaByteArrayToInt(N) 让以下代码工作:
var sprng = new java.security.SecureRandom();
var nextBytes = allocateJavaByteArray(4);
srng.nextBytes(nextBytes);
var nextInt = convertJavaByteArrayToInt(4);
提前谢谢你。
【问题讨论】:
-
在 Java 运行时可以从
<script>标签获得什么样的奇怪上下文?我认为这里可能存在一些混乱。 -
我已经在 Ubuntu 上的 Firefox 3.0 中对其进行了测试。另请参阅docstore.mik.ua/orelly/webprog/jscript/ch22_03.htm
-
为 java 找到一个好的 JSON 编码类并且只传递 JSON 作为 javascript 的任何数据。顺便说一句 - 我也不明白你是如何将 java 放在
-
除非您更愿意拒绝,请考虑检查我上面提供的链接和/或在基于 Mozilla 的浏览器中运行我在 OP 中提供的一段 Javascript 代码。但它在 IE 中不起作用。
-
老问题,我知道,但是您是否碰巧找到了解决方案?我也有同样的问题...
标签: java javascript arrays byte