2010-07-22 95 views
1

我創建一個這樣的編碼鍵:從密鑰中獲取字符串?

public static String generateKey(String username) { 
    return KeyFactory.keyToString(
     KeyFactory.createKey(User.class.getSimpleName(), username)); 
} 

是可以分解的關鍵在於獲得原始用戶名出來的嗎?

String encoded = generateKey("bob"); 
String decoded = KeyFactory.decodeKey(encoded); 
// decoded = "bob". 

感謝

---------編輯:我如何存儲密鑰-------------------- -----

@PrimaryKey 
@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value="true") 
private String mKey; 
+0

這一切都取決於編碼。有些是可逆的,有些不是。你使用什麼樣的編碼? – rboarman 2010-07-22 16:30:59

+0

我不知道如何回答 - 我只是使用「gae.encoded-pk」標籤 - 是編碼類型?否則,我使用KeyFactory的上述編碼方法,不確定是否有機會選擇編碼類型? – user246114 2010-07-22 17:24:00

回答

0

這可能不是一個好主意,嘗試提取一個,即使返回的密鑰目前看起來是可逆的。從KeyFactory documentation

客戶端不應該做任何假設 這個返回值, 除了它是一個網絡安全字符串 不需要時HTML或URL中使用 被引用。

+0

這是一個無賴!希望我能解碼它,可以讓我不必將用戶名存儲爲班級中的另一個字符串。 – user246114 2010-07-22 17:24:31

+0

對不起,壞消息:( – jball 2010-07-22 17:34:45