Javascript "ReferenceError: Hex is not defined"?
Hallo,
ich will einen Byte-Hex-String generieren. Dazu habe ich folgenden Code:
function random_string()
{
return Hex.encodeHexString(SecureRandom.getInstanceStrong().nextBytes(new byte[16]))
}
Aber es kommt der Fehler "ReferenceError: Hex is not defined"
Warum geht das nicht??
LG
4 Antworten
Weil JavaScript nunmal nicht Java ist... Du kannst (bis auf ein paar Sonderfälle) in JavaScript keine Java-Klassen verwenden. (Wobei mir auch keine Standard-Java-Klasse namens "Hex" bekannt wäre, müsst ich ggf. mal in der Dokumentation nachlesen...)
In JS sähe das eher so aus:
function random_string(){
let result = new Array();
for(let i = 0; i < 16; ++i){
let dec = Math.floor(Math.random() * 255);
let hex = dec.toString(16);
if(hex.length() == 1) hex = '0' + hex;
result.push(hex);
}
return result.join('');
}
Warum geht das nicht??
Hex ist in der Tat nicht definiert.
Du hast hier vermutlich Java und JavaScript erheblich durcheinander gebracht.
Der Codeschnipsel stammt offensichtlich aus der java.security.* Bibliothek.
Schau mal hier, Vielleicht kommt das für JavaScript näher:
Wo soll Hex denn herkommen? Natives JS ist es auf jeden Fall nicht. Wenn du das aus dem Internet hast fehlen wahrscheinlich irgendwelche Librarys.
Es gibt eine Methode mit der gleichen Signatur in Java aus der Apache Commens Library. Und auch der Rest scheint eher Java zu sein und nicht JS. Mit JavaScript hat das nichts zu tun.
Weil Hex nicht defined is. Das ist eine nicht Standard Klasse, da musst du erst die Library einbauen.
finds gerade nicht mehr... aber gibt es denn die java libaries für javascript??
Nein Java und Javascript sind zwei völlig unterschiedliche Programmiersprachen. Nur im Namen ähneln sie sich. Was genau willst du denn machen?
Nein. Java und JavaScript haben rein gar nichts miteinander zu tun.
wo bekommt man die