Android 보안 암호 화:메시지 요약 메시지 Digest 상세 설명
3736 단어 Android 보안 암호 화MessageDigest
또한 대칭 암호 화 와 메시지 요약 이라는 두 가지 지식 포 인 트 는 단독으로 사용 할 수 있다.
지식 점 직렬 연결:
디지털 인증 서 는 위 에서 배 운 모든 지식 을 사 용 했 습 니 다.
4.567917.대칭 암호 화 와 비대 칭 암호 화 를 결합 하여 비밀 키 교환 을 실현 한 후에 통신 쌍방 은 이 비밀 키 를 사용 하여 대칭 암호 화 통신 을 한다4.567917.메시지 요약 과 비대 칭 암호 화 는 디지털 서명 을 실 현 했 고 루트 인증서 기 구 는 목표 인증서 에 서명 했다.검증 할 때 루트 인증 서 는 공개 키 로 이 를 검증 했다.검사 에 성공 하면 이 인증 서 는 신뢰 를 받 는 것 입 니 다
상기 내용 의 학습 을 통 해 우 리 는 다음 과 같은 지식 을 습득 할 수 있어 야 한다.
기초 지식:bit 비트,바이트,문자,문자 인 코딩,진 변환,io4.567917.실제 개발 에서 대칭 암호 화 를 어떻게 사용 하여 문 제 를 해결 하 는 지 알 고 있다.
4.567917.대칭 암호 화,비대 칭 암호 화,메시지 요약,디지털 서명,디지털 인증 서 는 어떤 문 제 를 해결 하기 위해 나타 난 것 인지 알 고 있다SSL 통신 절 차 를 이해 하 다.
실제 개발 에서 Https 인 터 페 이 스 를 어떻게 요청 합 니까?
1.흔 한 알고리즘
MD5,SHA,CRC 등
2.필드 사용
사용자 비밀 번 호 를 md5 암호 화한 후 데이터베이스 에 저장 합 니 다소프트웨어 다운로드 소 에서 메시지 요약 을 사용 하여 파일 지문 을 계산 하고 변경 되 는 것 을 방지 합 니 다숫자 서명(뒤에 지식 포인트)4.567917.바 이 두 클 라 우 드,360 메 쉬 등 클 라 우 드 디스크 의 묘 전 기능 은 바로 sha 1 값 입 니 다이 클립 스 와 안 드 로 이 드 스튜디오 개발 도 구 는 sha 1 값 에 따라 v4,v7 패키지 의 충돌 여 부 를 판단 합 니 다4.567917.은행 의 비밀 번 호 는 MD5 암호 화 를 사용한다 고 합 니 다(MD5 는 불가 역 성 을 가지 기 때 문 입 니 다)
예 를 들 어 소프트웨어 다운로드 소 데이터 지문:http://dev.mysql.com/downloads/installer/
3.사용 절차
// :MD5、SHA、CRC
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] result = digest.digest(content.getBytes());
// 16
String hex = Hex.encode(result);
//MD5 16 (128 )、 16 32
//SHA 20 (160 )、 16 40
System.out.println(hex);
메시지 요약 후의 결 과 는 고정 길이 입 니 다.데이터 가 아무리 크 더 라 도 하나의 바이트 나 G 파일 만 있 더 라 도 요약 후의 결 과 는 고정 길이 입 니 다.MD5 요약 후 결 과 는 몇 명 이 냐 는 질문 을 자주 듣는다.16 명 이 라 고 말 하 는 사람 도 있 고 128 명 이 라 고 말 하 는 사람 도 있 고 32 명 이 라 고 말 하 는 사람 도 있다.도대체 얼마나 긴 지 이 럴 때 우 리 는 16 비트 는 바이트 수 를 가리 키 고 128 비트 는 비트 수 를 가리 키 며 32 비트 는 16 진법 으로 전 시 된 문자 수 를 가리킨다.
4.숫자 요약 원리
//
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(key.getBytes());
byte[] bytes = digest.digest(key.getBytes());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(bytes[i]&0xff);
if (hex.length() == 1){
sb.append("0");
}
sb.append(hex);
}
String hexstring = sb.toString();