다음은 네트워크 전송에 일반적으로 사용되는 여러 암호화 방법입니다.
(비디오 공유 학습: 프로그래밍 비디오)
팁: 이러한 암호화에는 일반 텍스트 전송이 포함되며 https 프로토콜에서 암호화되어야 합니다.
1. 키 해싱
MD5 또는 SHA1 및 기타 해싱 알고리즘을 사용하여 일반 텍스트를 암호화합니다(이러한 알고리즘은 해당 알고리즘을 사용하여 기계에서 계산할 수 있으므로 여기서 암호화는 기계가 아닌 사람만을 위한 것입니다)
장점: 변조 방지
적용 가능한 시나리오: 일반 파일 다운로드
단점: 보안 없음, 인증 가능
2. 대칭 암호화
장점: 안전하고 인증 가능
적용 가능한 시나리오: 고정된 발신자 및 수신자 수, 키가 적은 개체 사용
단점: BS 네트워크 전송 관계, 키를 암호화하여 전송하지 않으면 유지하기가 어렵습니다
3. 비대칭 암호화
3.1 수신자가 공개 키를 보냅니다(데이터 무결성 보장)
전제 조건: 발신자는 첫 번째 통신에서 수신자의 공개 키를 수신하고 이를 로컬에 저장합니다
3.2. 발신자는 공개 키를 보냅니다(발신자의 인증 보장)
전제: 수신자는 첫 번째 통신에서 발신자의 공개 키를 받습니다. 키를 저장하고 로컬에 저장합니다
4. 디지털 서명
적용 가능한 시나리오: 로그인 인증
단점: 기밀성이 부족함
Shorthand
Symmetric Algorithm
Symmetric Algorithm.Create ()=>
공급자. CreateEncryptor()
Provider.CreateDecryptor()
CryptoStream(Stream stream,ICrytoTransformTransform,CryptoStreamMode mode):
CryptoStream(encryptedSteam,encryptor,CryptoStreamMode.Write)//암호화 준비 비어 있는 암호화된Steam 준비 읽기
CryptoStream(encryptedSteam,decryptor)에 기록됨 ,CryptoStreamMode.Read)//암호화를 암호문 스트림에 쓸 준비가 되었습니다. poweredSteam을 읽을 준비가 되었습니다
비대칭 암호화
비대칭 암호화(ASymmistricAlgorithm):
ProviderProvider
provider.ToXmlString(true);//Get the 공개 및 개인 키 쌍
provider.ToXmlString(false);//공개 키 가져오기
provier.FromXmlString(publicKeyXml);
provier.FromXmlString(privateKeyXml);
provider.Encrypt();
provider.Decrypt( );
예:
대칭 암호화:
string key = "abc"; string sendContent="你好!"; var byteKey = Encoding.UTF8.GetBytes(key); var byteIV = Encoding.UTF8.GetBytes(key);//加密算法初始化向量 DESCryptoServiceProvider des = new DESCryptoServiceProvider();//使用des加密 byte[] bytesContent = Encoding.UTF8.GetBytes(sendContent); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byteKey, byteIV), CryptoStreamMode.Write); cs.Write(bytesContent, 0, bytesContent.Length); cs.FlushFinalBlock();
관련 권장 사항:웹사이트 보안 튜토리얼
위 내용은 네트워크 보안에 일반적으로 사용되는 암호화 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!