2017-04-06 62 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

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

相关问题