2010-07-22 64 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