Tag:

生成安全cookie令牌以持久存储

我正在尝试为我的网站创建登录和注册页面。 我希望使用cookie来跟踪用户会话,但我正在尝试以最恰当和安全的方式实现它。 我已经尝试过查看教程和论坛,但其中大部分已经过时,并且使用人们评论不安全的技术。 我理解令牌需要随机生成和加密,所以我发现一个建议在UUID上使用MessageDigest的响应。 但是我发现更多的文章表明这​​可能不像我想的那样安全……有关生成cookie标记以存储在我的数据库中的安全方法的任何建议吗? 当我尝试使用UUID方法时,我遇到了如何将其放入我的数据库,因为我无法找到如何将其转换为字符串。 这是我的代码…… UUID uuid = UUID.randomUUID(); MessageDigest salt = MessageDigest.getInstance(“SHA-256”); salt.update(uuid.toString().getBytes(“UTF-8”));

Java – 生成随机盐不是随机的

我正在尝试在Java中生成一个salt,以便使用散列算法进行安全密码存储。 我正在使用以下代码创建随机盐: private static String getSalt() throws NoSuchAlgorithmException { SecureRandom sr = SecureRandom.getInstance(“SHA1PRNG”); byte[] salt = new byte[16]; sr.nextBytes(salt); System.out.println(salt.toString()); return salt.toString(); } 这应该生成一个完全安全的,随机生成的盐,用于我的散列算法。 然而,当我运行代码时,它每次都会输出相同的盐…表明生成的盐根本不是随机的。 出于明显的安全目的,每个用户都需要一个独特的盐,但是如果我每次创建一个新帐户时都使用这个代码,那么每个用户将拥有相同的盐,从而无法首先使用它。 我的问题是:为什么这会一直给我相同的盐,我该怎么做才能确保每次运行代码时生成的盐都是完全随机的? 编辑: 以为我会包含整个哈希程序的源代码,现在已经修复并正常工作。 这是一个简单的原型,用于模拟在创建帐户时生成哈希值,然后在登录系统时检查密码。 package hashingwstest; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Random; import java.util.Scanner; public class HashingWSTest { public static void main(String[] args) throws NoSuchAlgorithmException { Scanner […]

如何使用Java中的BouncyCastle API加密和加密密码?

我对密码学很新,我使用BouncyCasetle API来加密密码并将其存储在数据库中。 对于加密,我使用的是SHA-1算法,我希望将密码加密以防止它再次进行字典攻击。 任何帮助,将不胜感激。