ACEGI 암호 화
한 번 또 한 번 의 수확.
오늘 문제 해결: 비밀번호 암호 화!
설명: 사용자 가 등록 할 때 데이터베이스 에 삽 입 된 비밀 번 호 는 암호 화 됩 니 다.이 암호 화 함 수 는 어떻게 씁 니까?
해결 방법:
다 들 아시 다시 피 ACEIG 인증: dao AuthenticationProvider
Authentication. getCredentials () 와 UserDetails. getPassword 판단
getCredentials 로그 인 인터페이스의 입력 암 호 를 가 져 옵 니 다.
getPassword 데이터베이스 에 있 는 암 호 를 가 져 옵 니 다.
인증 할 때 XML 설정 이 되 어 있 습 니 다.
<property name="passwordEncoder">
<bean class="org.acegisecurity.providers.encoding.MD5PasswordEncoder">
</property>
<property name="saltSource">
<bean class="org.acegisecurity.providers.dao.salt.SystemWideSaltSource">
<property name="systemWideSalt" value="aaa">
</property>
이것 은 단지 네가 입력 한 비밀 번 호 를 암호 화 하 는 것 이다.
그러나 등록 할 때 이 암호 화 과정 과 암호 화의 실현 을 먼저 알 아야 한다.그렇지 않 으 면, 두 개의 비밀번호 도 같 지 않다.
이것 은 acegi 의 소스 코드 를 보면 실현 할 수 있 는 방법 입 니 다.
사실 acegi 의 실현 도 javax. security. Message Digest 를 통 해 이 루어 졌 다.
우선 어떤 암호 화 방식 인지 확인 하 세 요.
MD5, SHA 등.
MessageDigest m = MessageDigest.getInstance("MD5");
이어서 어떤 인 코딩 함수 로 암호 요약 인 코딩 을 하 는 지 판단 했다.
Hex,Base64
XML 에 설정 되 어 있 지 않 으 면 기본적으로 HEX 를 사용 합 니 다.
Hex.encode(m.digest(rewPass.getBytes()));
어, 암호 화 염 을 사용 하지 않 았 어? 방금 잊 어 버 렸 어. PasswordEncoder 의 encodePassword (String raw Pass, Object salt) 에서 얻 은 salt 가 XML 에서 systemWide Salt 의 값 이 야.
암호 화 염 은 사실 암호 화 된 피 드 로 원본 암호 와 함께 암호 화 된 연산 입 니 다.
위의 Hex. encode (m. digest (rew Pass. getBytes ()) 는 이렇게 써 야 합 니 다.
Hex.encode(m.digest((rewPass+salt).getBytes()))
이제 다 알았어.
암호 화 방법 도 나 왔 습 니 다.
public static String toMD5(String rawPass ){
rawPass +="{eastjava1995}";//{eastjava1995} is salt,mapping the xml file
String encPass = null;
try{
MessageDigest md5=MessageDigest.getInstance("MD5");
encPass = new String(Hex.encodeHex(md5.digest(rawPass.getBytes())));
}catch(Exception e){
e.printStackTrace();
}
return encPass;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
XML이란 무엇입니까?이것은 저장, 검색 및 공유할 수 있는 형식으로 데이터를 저장하는 강력한 방법입니다. 가장 중요한 것은 XML의 기본 형식이 표준화되어 있기 때문에 시스템이나 플랫폼 간에 로컬 또는 인터넷을 통해 XML을 공유하거나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.