2017-04-06 44 views
-1

在Scala中,我有在做Base64.encodeToString & Base64.decodeencodeToString不是Base64的成員?

def genKeyAES(): String = { 
    val keyGen = KeyGenerator.getInstance("AES") 
    keyGen.init(128) 
    val key = keyGen.generateKey() 
    val base64Str = Base64.encodeToString(key.getEncoded()) 
    base64Str 
    } 
    def loadKeyAES(base64Key: String): SecretKey = { 
    val bytes = Base64.decode(base64Key) 
    val key = new SecretKeySpec(bytes, "AES") 
    return key 
    } 

錯誤表示部分代碼,

Type value encodeToString is not a member of object java.util.Base64 
Type value decode is not a member of object java.util.Base64 

我導入的包是java.util.Base64 我怎樣才能解決這個問題問題?

+1

API文檔證實了編譯器告訴你:https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html。嘗試先調用'getDecoder'和'getEncoder'。 – danielnixon

+0

@danielnixon我試過了,但getEncoder與encodeToString不同。 –

回答

1

更換

Base64.encodeToString(key.getEncoded()) 

通過

Base64.getEncoder.encodeToString(key.getEncoded()) 

Base64.decode(base64Key) 

通過

Base64.getDecoder.decode(base64Key) 
+0

是的,它工作。感謝您的努力 –

相關問題