Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA、mysql中的简单加密(用户名-密码)_Mysql_Jpa_Encryption - Fatal编程技术网

JPA、mysql中的简单加密(用户名-密码)

JPA、mysql中的简单加密(用户名-密码),mysql,jpa,encryption,Mysql,Jpa,Encryption,我对Java加密一无所知,需要您的帮助。我想用mysql和JPA entity UserRecord实现一个简单的登录系统: @Entity public class UserRecord implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.SEQUENCE)

我对Java加密一无所知,需要您的帮助。我想用mysql和JPA entity UserRecord实现一个简单的登录系统:

    @Entity
    public class UserRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Long id;
    @Column(unique=true)
    private String username;
    private String password;
现在,什么是最好的保密方法?我认为,我必须加密密码,并在将输入与数据库记录进行比较时设法解密密码。在JPA中有没有一些特殊的方法来实现这一点?我不想创造任何困难,它只是为了我的学习问题。唯一的要求是:必须用盐腌制(?)。请你给我提个建议好吗


非常感谢

密码必须在数据库中加密。。。最好是不能解密它!这意味着在加密密码时,您必须丢失一些信息,以便无法从其加密形式计算原始密码。(有很多算法可以做到这一点,比如,…)。 ()

使用salt意味着您将在用户创建其帐户时向密码附加一个随机字符串(即salt)。您将把这个随机字符串存储在用户表中(就像加密的密码一样)

要在登录时验证用户密码,请执行以下操作:

  • 查找为尝试登录的用户生成的salt
  • password+salt
  • 将结果与数据库中存储的加密密码进行比较:如果匹配,则密码正确
下面是一个包含更多详细信息和示例代码的示例


顺便说一句:这个问题与JPA无关。AFAIK:JPA规范中没有与加密相关的内容。

密码必须在数据库中加密。。。最好是不能解密它!这意味着在加密密码时,您必须丢失一些信息,以便无法从其加密形式计算原始密码。(有很多算法可以做到这一点,比如,…)。 ()

使用salt意味着您将在用户创建其帐户时向密码附加一个随机字符串(即salt)。您将把这个随机字符串存储在用户表中(就像加密的密码一样)

要在登录时验证用户密码,请执行以下操作:

  • 查找为尝试登录的用户生成的salt
  • password+salt
  • 将结果与数据库中存储的加密密码进行比较:如果匹配,则密码正确
下面是一个包含更多详细信息和示例代码的示例

顺便说一句:这个问题与JPA无关。AFAIK:JPA规范中没有与加密相关的内容