SHA1 해시를 사용하여 데이터베이스에 암호를 입력하고 싶습니다. sha1 기능을 선택하여 phpmyadmin에서 수동으로 수행하지만 Java를 사용하여 어떻게 수행합니까?자바에서 SHA1 암호 해시
아이디어가 있으십니까? 고맙습니다!
SHA1 해시를 사용하여 데이터베이스에 암호를 입력하고 싶습니다. sha1 기능을 선택하여 phpmyadmin에서 수동으로 수행하지만 Java를 사용하여 어떻게 수행합니까?자바에서 SHA1 암호 해시
아이디어가 있으십니까? 고맙습니다!
use java을 수행해야하는 경우 : 데이터베이스가 SHA 지원이있는 경우
import java.io.ByteArrayInputStream;
import java.security.MessageDigest;
public class SHACheckSumExample
{
public static void main(String[] args)throws Exception
{
MessageDigest md = MessageDigest.getInstance("SHA-1");
ByteArrayInputStream fis = new ByteArrayInputStream(args[1].getBytes());
byte[] dataBytes = new byte[1024];
int nread = 0;
while ((nread = fis.read(dataBytes)) != -1) {
md.update(dataBytes, 0, nread);
};
byte[] mdbytes = md.digest();
//convert the byte to hex format method 1
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println("Hex format : " + sb.toString());
//convert the byte to hex format method 2
StringBuffer hexString = new StringBuffer();
for (int i=0;i<mdbytes.length;i++) {
hexString.append(Integer.toHexString(0xFF & mdbytes[i]));
}
System.out.println("Hex format : " + hexString.toString());
}
}
내가, 성능상의 이유로, 보는 건의 할 것입니다. 나는 을 알고 있지만 다른 시스템에 대해서는 확실하지 않습니다.
SHA for password는 "성능상의 이유로"사용하면 안됩니다. 실제로 해시를 암호로 사용하지 않는 것이 좋습니다. 이것은 'MessageDigest'를 통해 SHA-1의 예를 보여 주지만 (여분의 것들이 잔뜩 있음) 데이터베이스에서 비밀번호를 해싱하는 방법의 예는 매우 좋지 않습니다. 소금 없음 - 레인보우 테이블 공격, SHA-1 - 무차별 공격. – user2246674
jBCrypt를 시도하고 완벽하게 작동하지만 SHA1과 해싱하지 않는 암호로 로깅 할 수 없습니다. 내 XML 파일 "spring-security.xml"에있는이 줄로 인해 **
나는 그것을 간단하게 종료합니다! \t \t ** MessageDigestPasswordEncoder encoder = 새 MessageDigestPasswordEncoder ("SHA"); \t \t 문자열 해시 = encoder.encodePassword (사용자 .getPassword(), ""); ** – Somar
검색을 통해 좋은 리드를 찾아 냈습니까? * 많은 * 중복이 있습니다. (또한 "암호화"! = "해싱", 더 나은 검색 용어가 될 것입니다.) – user2246674
* 이해 *이 회신으로 시작 : http://stackoverflow.com/a/401684/2246674 – user2246674
SHA1은 해시 펑크 튼 죄송합니다 – Somar