암호화 된 암호 (md5)를 SQL 데이터베이스로 보냈습니다. 실수로 md5 암호화를 정수 열로 보냈습니다. 입력 한 암호는 "테스트"였고 데이터베이스에 "5"로 표시되고 "qwertyqwerty"라는 암호를 입력했는데 "2147483647"로 나타났습니다. 호기심 때문에 아무에게도이 일을 어떻게 설명 할 수 있습니까? ? 왜 int 값이 그렇게 많이 다른가요?MD5 암호가 INT의 mysql 필드에 전송되었습니다.
-1
A
답변
1
MD5는 암호를 암호화하지 않으며 해시합니다.
해시는 주어진 입력을 받아 예측 가능한 출력을 생성하는 (즉, 주어진 입력이 항상 동일한 출력을 가짐) 이상적으로 매우 비슷한 입력조차도 매우 다른 출력을 산출하는 일방적 인 함수입니다.
MD5 해시는 128 비트입니다. 이러한 128 비트를 32 비트 SQL 열에 쓰려고하면 확실히 일부 잘림이 발생합니다.
MD5를 생성하는 데 사용 된 특정 코드를 이해하지 못하고 정수로 변환 한 다음 SQL에 쓰면 왜 작은 숫자가 나오는지 이해할 수 없으며 다른 번호에는 부호 첨부 int의 최대치 코드를 게시하려면 의견을 기재하게되어 기쁩니다.
+0
의도하지 않았고 ive가 문제를 고쳤습니다. (md5에서 원하고 진정한 암호화가 필요합니다.)하지만 정보를 제공해 주셔서 감사합니다! –
0
왜 첫 번째 값이 5로 나타나는지 말할 수는 없지만 두 번째 값은 정수형 열이 가질 수있는 최대 값이기 때문에 두 번째 값이 나타났습니다.
mysql이 문자열 MD5 해시를 정수로 변환 (또는 시도)하면 정수가 보유 할 수있는 최대 값을 초과하므로 최대 정수가 대신 저장됩니다.
관련 문제
- 1. MySQL MD5 SELECT
- 2. MD5 중복 항목 mySQL
- 3. Md5 mysql 행의 모든 정보
- 4. mysql 문자열 비교 - md5 빠름?
- 5. MYSQL 주입 및 md5 암호화
- 6. 데이터베이스에 암호가 저장 됨
- 7. mysql 필드에 배열 삽입하기
- 8. MySQL - 필드에 레코드 결합
- 9. INT의 IDENTITY (#, #)
- 10. MD5
- 11. Md5 고유 키가있는 테이블의 Mysql 파티셔닝
- 12. 왼쪽 조인과 md5 (concat())를 비교 mysql
- 13. inputSecret에 암호가 너무 길게 표시됨
- 14. MD5 해시 크기 생성
- 15. MySQL 필드에 숫자 범위 지정
- 16. 필드에 테이블의 개수 반영 (MySQL)
- 17. 필드에 à ¢ âÅÅ을 저장하는 MySQL
- 18. 지고 오류가 MD5 지문
- 19. Wordpress MD5 암호
- 20. 암호가 포함 된 SHA1, 암호가 필요 없습니다.
- 21. 사용자와 암호가 일치하지 않음 DB
- 22. validates_confirmation_of : 암호가
- 23. MD5 자바 패턴
- 24. int의 getter/setter 만들기?
- 25. GLSL의 int의 최상위 비트
- 26. 부호있는 int의 엔디안 변환
- 27. GUID INT의 IDENTITY 대
- 28. ChucK에서 int의 최대 값
- 29. 문자열과 int의 맵
- 30. webmethod int의 합계로 문자열을
2147483647은 SIGNED INT 열의 최대 값입니다. – Interrobang
왜 암호 해싱에 md5를 사용합니까? PBKDF2 또는 bcrypt가 표준 선택 사항입니다. – CodesInChaos