2013-01-07 12 views
20

Ich habe versucht, ein Byte-Array zu seinem ursprünglichen SecretKey zu konvertieren, aber ich habe keine Ideen mehr übrig. Der vielversprechendste Versuch war diese:konvertiert Byte-Array zu Geheimschlüssel

byte[] encodedKey  = Base64.decode(stringKey); 
SecretKey originalKey = SecretKeySpec(encodedKey, 0, encodedKey.length, "AES") 

hier: Converting Secret Key into a String and Vice Versa

ich den Import javax.crypto.spec.SecretKeySpec bin mit, so dass der Konstruktor für SecretKeySpec sollten korrekt verwendet werden, zumindest mit Bezug zu http://docs.oracle.com/javase/1.5.0/docs/api/javax/crypto/spec/SecretKeySpec.html.

Trotzdem bekomme ich immer "Die Methode SecretKeySpec ist undefiniert für ... [Klassenname]" - was ich einfach nicht bekomme.

Ich schätze, es ist nur ein kleiner Fehler, aber ich kann es einfach nicht herausfinden. Kann mir bitte jemand hier helfen?

+1

Haben Sie ein Semikolon am Ende des Konstruktors? :) – asteri

Antwort

37

Sie müssen das Schlüsselwort new verwenden, um den Konstruktor aufzurufen und das Objekt zu erstellen.

SecretKey originalKey = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES"); 

Wenn Sie versuchen, es ohne new zu nennen, denkt der Compiler könnte es eine Methode, die Sie innerhalb dieser Klasse definiert haben sein, damit Ihre Fehlermeldung.

+0

OMG, danke, habe definitiv zu lange vor dem Bildschirm gesessen ... –

+0

:) Geschieht uns allen. – asteri

+0

Ich weiß, immer noch - es ist gut zu wissen, nicht alleine zu sein ;-) nochmals vielen Dank! –