JPA 구현 및 PostgreSQL로 eclipselink를 사용하고 있으며 데이터베이스에 SHA-1 해시를 저장하려고합니다. 는하지만이 같은 예외를 받고 있어요 :SHA-1 해시를 EclipseLink 및 PostgreSQL에 저장
Internal Exception: org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00 Error Code: 0 Call: INSERT INTO mbm_user (USERNAME, PRENAME, LASTNAME, PASSWORD) VALUES (?, ?, ?, ?) bind => [Hans, null, null, THE SHA-1 HASH]
SHA-1 해시 일부 횡설수설 문자이며, 내가 여기에 붙여 넣을 수 없습니다.
내 법인 :
@Entity
@Table(name="mbm_user")
public class User extends CanAccessBook{
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(nullable = false)
private Long id;
@Column(nullable = false)
private String username;
@Column(nullable = false)
private String password;
private String prename;
private String lastname;
...
...
}
그리고는 SHA-1 해시 생성 방법 :
public void setPassword(String password) {
try {
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] encryptPassword = md.digest(password.getBytes());
this.password = new String(encryptPassword);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
어떻게 불법 문자 × 00의 사용을 피하거나 문제는 다른 곳에있다 ?
감사합니다. Base64 문자열로 변환했습니다. – LeonS