Necesito acceder a SecureRandom Java Object desde Javascript. Mi objetivo final es obtener 4 bytes de PRNG y convertirlo a una variable entera de Javascript. De acuerdo con http://download.oracle.com/javase/1.4.2/docs/api/java/security/SecureRandom.html, las siguientes dos líneas de código Java se supone que hacen de agarre 4 bytes aleatorios:Cómo pasar matrices de bytes entre Java y JavaScript
byte bytes[] = new byte[4];
random.nextBytes(bytes);
Mis problemas es que no sé cómo 1) asignar matriz de bytes adecuado para pasar a método Java 2) analizar esa matriz en un entero después
Hasta ahora he logrado getSeed() método que devuelve una matriz de bytes aleatorios. Cuando presento el código HTML proporcionado a continuación en Firefox, muestra "[B @ 16f70a4", que parece ser un puntero o algo así.
<script>
var sprng = new java.security.SecureRandom();
random = sprng.getSeed(4);
document.write(random + "<br/>\n");
</script>
Esto me hace pensar que tengo éxito para crear una instancia y la clase de acceso de Java, pero tienen un problema con la conversión de tipos.
Puede alguien por favor me ayude a escribir allocateJavaByteArray (N) yconvertJavaByteArrayToInt (N) para dejar el trabajo siguiente código:
var sprng = new java.security.SecureRandom();
var nextBytes = allocateJavaByteArray(4);
srng.nextBytes(nextBytes);
var nextInt = convertJavaByteArrayToInt(4);
gracias de antemano.
¿Qué tipo de contexto extraño es usted que puede obtener en el tiempo de ejecución Java desde un '
simplemente podría generar un entero aleatorio en el primer lugar, así:
Fuente
2010-10-07 11:28:09 andrewmu
Se podría aplicar convertJavaByteArrayToInt así:
allocateJavaByteArray es difícil de aplicar, porque no podemos obtener el Clase de byte. Por lo tanto, no es posible usar java.lang.reflect.Array.newInstance para crear una instancia de byte []. Pero aquí es una aplicación difícil:
actualizan: Parece que por encima de código no funcionaba en Firefox 3.6. Aquí hay otro allocateJavaByteArray aplicación, tiene una oportunidad:
Fuente
2011-05-31 17:11:04 baotuo
Gracias. He intentado con tu código: http://pastebin.com/UW59urTW. Desafortunadamente convertJavaByteArrayToInt() devuelve 0. No sé si se trata de un problema de conversión o quizás la invocación de SPRNG es incorrecta. – abb
cambiar ** convertJavaByteArrayToInt (4) ** a ** convertJavaByteArrayToInt (nextBytes) **, obtendrá lo que desea. – baotuo
La misma diferencia, sigo recibiendo 0. Lo intento en Firefox 3.6.17 en Ubuntu. ¿En qué navegador/plataforma lo tienes funcionando? – abb
serie Java es el único que va a pasar en Java> JS o JS-> Java y sin dolor de cabeza.
byte [] o cualquier arry se verá en JS como JSObject.
es
funciona en Netscape/Mozilla/FF
Se necesita acceso a clases, por lo que cualquier clase estándar de Java o si necesita cargar un frasco y luego accede a la clase
a la pregunta original:
crear applet de poco con método de utilidad:
someStringEncodedValue public String() { retorno 1+ "|" 2; }
incluyen subprograma en la página con identificación única
JS encuentran subprograma utilizando id único
método llamado
cadena de análisis (dividida por |)
Fuente
2013-11-01 20:11:52 user1817599