Java 跟踪散列密码';s原始长度

Java 跟踪散列密码';s原始长度,java,android,sharedpreferences,sha1,Java,Android,Sharedpreferences,Sha1,若用户在应用程序中唱歌时选择了“记住我”选项,我将SHA1密码保存在SharedReferences中 所以,下一次用户在登录屏幕上时,他的用户名和密码已经由SharedReferences资源填写 这里的问题是,因为我正在保存加密的SHA1密码,无论实际密码字符串有多短或多长,其长度始终为40。所以用户将在密码文本框中看到40个密码点。。 用户可能会混淆此密码长度 那么,我如何在那里显示原始密码字符串。。。?? 如果我能简单地减少那个字符串就好了,但不幸的是,这不是一个我可以依赖的选项 那么还

若用户在应用程序中唱歌时选择了“记住我”选项,我将SHA1密码保存在SharedReferences中

所以,下一次用户在登录屏幕上时,他的用户名和密码已经由SharedReferences资源填写

这里的问题是,因为我正在保存加密的SHA1密码,无论实际密码字符串有多短或多长,其长度始终为40。所以用户将在密码文本框中看到40个密码点。。 用户可能会混淆此密码长度

那么,我如何在那里显示原始密码字符串。。。?? 如果我能简单地减少那个字符串就好了,但不幸的是,这不是一个我可以依赖的选项


那么还有其他方法吗????

我正在保存一个加密的密码
它不是加密的,是散列的。这意味着它无法恢复,因此您将无法显示原始密码。切换到加密算法如果你想能够恢复密码你可以尝试AES,这更友好-在你的问题的上下文中。我不太了解这种加密,或者你的应用程序,但是否有可能获得键入密码的长度,是否将其保存在另一个SharedReference中,然后在再次加载时仅显示该数量的字符?因此,如果密码为10个字符,它只显示10个字符,但实际上它使用的是“原始”加密密码。旁注:在SharedReferences中存储密码不是很安全。或者,您可以查看
AccountManager
。这篇关于BouncyCastle AES加密/解密的文章可能会有所帮助。