프런트 엔드 데이터 암호화의 세 가지 방법을 증명하는 방법

가이드: 프런트 엔드에서 가장 일반적인 세 ​​가지 암호화 방법은 https, SSH 및 MD5입니다. 이 기사에서는 세 가지 암호화 방법의 원칙을 비교합니다.


1. https
1.1 원칙

A. http 보안의 기본인 http에 SSL 레이어를 추가하는 것으로
B. htts 프로토콜은 http를 기반으로 SSL 프로토콜을 추가하는 것으로
C. 포트 443을 사용하며 http는 포트 80 ;
D. Netscape 회사에서 개발하여 브라우저에 내장
1.2 기능
A. 데이터 전송의 보안을 보장하기 위한 정보 보안 채널 구축
B. 웹사이트의 진위 확인, 웹사이트 인증의 진위를 확인할 수 있습니다. ;
1.3 핵심은 SSL 계층
A. 위치: TCP와 IP 사이의 보안 계층
​​B. 분류:
SSL 레코드 프로토콜: TCP 위에 구축되어 데이터 캡슐화, 압축 및 데이터 암호화 제공,
SSL 핸드셰이크 프로토콜: 내장된 레코드, 데이터 전송 전에 양측 인증, 암호화 알고리즘 협상 및 키 교환
C.SSL 서버 인증 프로세스:
클라이언트가 요청을 보내고
서버가 새 마스터 키 생성 필요 여부를 결정, 필요한 경우
클라이언트를 반환하여 정보를 수신하고 마스터 키를 생성하고 공개 키로 전송을 암호화합니다.
서버는 마스터 키를 복원하고 인증 메시지를 반환합니다.
1.4 SSL 프로토콜
A.SSL 프로토콜에는 다음이 포함됩니다. 핸드셰이크(인증서 교환 및 검증) 및 기록 프로토콜(데이터 암호화),
B.SSL 핸드셰이크 프로토콜 프로세스:
1. 클라이언트는 SSL 버전 번호, 알고리즘 유형, 생성된 난수 등을 전송합니다.
2. 서버는 서버의 SSL 프로토콜 버전 번호, 알고리즘을 전송합니다. 유형 및 인증서(공개 키 포함)
3. 클라이언트 측에서 확인합니다.
4. 검증은 대칭 비밀번호를 무작위로 생성하고, 공개키 암호화는 프리 마스터 비밀번호를 생성하여 서버로 전송 5.
서버는 클라이언트 인증서 및 서명 난수를 포함하여 신원 확인을 요청할 수 있습니다
. 통과: 서버가 개인 키를 사용하여 비밀번호 잠금 해제, 대칭 키 생성
7. 고객 서비스 단말기가 후속 데이터가 이 통신을 채택한다는 것을 확인하는 메시지를 전송합니다.
8. 서버가 응답합니다
. C. 전체 프로세스에는 3개의 요청과 3 응답
2. SSH
2.1 개념
비대칭 암호화, 전송 계층, 사용자 인증 및 연결 프로토콜
2.2 원칙 A, 한 쌍의 공개 키와 개인 키 B
가 컴퓨터 a에서 생성되고 개인 키는 이동하지 않으며 공개 키는 공개 키는 매우 복잡합니다. 프로세스가 도난 당하더라도 제 3자는 이해하지 못합니다
.
C, a 및 b가 처음으로 통신을 시도하면 a가 보낸 내용이 암호화됩니다. a가 저장한 개인 키에 의해 암호화된 파일이 네트워크
D에 전송되고 b도 공개 키를 사용하여 끝의 내용을 해독합니다. 만약 두 컴퓨터가 친밀한 관계를 형성하면 E, 그리고 a와 b는 전송합니다. 3.MD5 3.1. 개념
정보 다이제스트 알고리즘 3.2 특징
A.MD5 암호화 출력은 32비트 문자열 B. MD5 암호화 사용 후 동일한 내용 획득 내용은 동일 C.MD5는 역방향 복호화 불가, 격렬한 충돌로 의무기록 크랙만 가능








(32비트 비밀번호를 사용해보세요)
D. 무차별 대입 크래킹을 방지하기 위해 소금을 추가할 수 있습니다
3.3. 사용 방법:
A. npm iS blueimp-md5 다운로드
B. 패키지 가져오기
C. 암호화 방법:
보통 암호화: var val=md5 ('값');
솔트 추가: var val=md5('값', '솔트 추가는 처음입니다');
4. SSL, SSH 및 md5 비교
1.SSL은 독립적인 보안 계층 ​​암호화 프로토콜
TCP(응용 프로그램 계층)와 IP(네트워크 계층) 사이에 위치,
데이터를 암호화하고 확인하기 위한 것,
2.SSH에는 암호화, 연결 및 인증 기능이 있음,
3.md5는 암호화된 데이터 전송 또는 저장에 대해 간단히 설명합니다. 데이터베이스;

 

1. md5 암호화: md5.js

md5.js에는 6가지 암호화 방법이 있습니다: hex_md5(s), b64_md5(s), str_md5(s), hex_hmac_md5(key, data), b64_hmac_md5(key, data), str_hmac_md5(key, data)

<스크립트 src="js/md5.js"></스크립트> 

var pwd = hex_md5("val"); // val은 암호화 전의 값을 나타냅니다.

console.log(pwd); // pwd는 암호화된 값을 나타냅니다.

2. Base64 암호화: base64.js

<스크립트 src="js/base64.js"></스크립트>

var b = 새 Base64( );

var str = b.encode("admin:admin"); //암호화

var str1 = b.decode(str); //복호화

console.log(str);

콘솔.로그(str1)

3. Sha1 암호화: sha1.js

<스크립트 src="js/sha1.js"></스크립트>

var sha = hex_sha1('mima123465');

console.log(샤);

4. RSA 암호화: jsencrypt.js

<스크립트 src="js/jsencrypt.js"></스크립트>

var str = "비밀번호";

// 공개 키 var publicKey = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoG"

// 개인 키 var privateKey = "DANBgkqhkiG9w0BAQEFAASCal"

암호화

var encrypt = 새 JSEncrypt();

encrypt.setPublicKey(공개키);

var encryptStr = encrypt.encrypt(str);

console.log("암호화 후: " + encryptStr);

해독하다

var decrypt = 새 JSEncrypt();

decrypt.setPrivateKey(비공개 키);

var decryptStr = decrypt.decrypt(encryptStr);

console.log("복호화 후: " + decryptStr);

추천

출처blog.csdn.net/dageliuqing/article/details/128055955