공통 암호화 알고리즘은 기본적으로 이러한 범주로 나뉩니다. 1 : 선형 해시 알고리즘, 2 : 대칭 암호화 알고리즘, 3. 비대칭 암호화 알고리즘 (레코드)
선형 해시 알고리즘 (서명 알고리즘) : MD5, SHA1, HMAC
예를 들어, MD5 : Message-Digest 알고리즘 5 (정보 부수 알고리즘 5)는 완전하고 일관된 정보 전송을 보장하는 데 사용됩니다.
특징:
1. 압축성 : 계산 된 MD5 값 길이는 모든 길이의 데이터에 대해 고정됩니다.
2. 계산하기 쉬운 : 원래 데이터에서 MD5 값을 쉽게 계산할 수 있습니다.
3. 수정 저항 : 원래 데이터를 변경하십시오. 1 바이트 만 수정하더라도 결과 MD5 값은 매우 다릅니다.
4. 강력한 반액 : 원래 데이터와 MD5 값은 동일한 MD5 값 (즉, 단조 데이터)의 데이터를 찾기가 매우 어렵다는 것이 알려져 있습니다.
MD5의 기능은 디지털 서명 소프트웨어로 개인 키에 서명하기 전에 대용량 정보를 기밀 형식으로 "압축"할 수 있도록하는 것입니다 (즉, 모든 길이의 바이트 스트링을 특정 길이의 16 진수 문자열로 변환).
대칭 암호화 알고리즘 : AES, DES, 3DES
예를 들어, AES : (고급 암호화 표준)은 미연방 정부가 채택한 블록 암호화 표준 인 암호화에서 Rijndael 암호화 방법이라고도합니다. 이 표준은 원래 DES를 대체하는 데 사용되며 여러 당사자가 분석했으며 전 세계적으로 널리 사용됩니다.
비대칭 암호화 알고리즘 : RSA, DSA, ECC
예를 들어, RSA : RSA 공개 키 암호화 시스템. 소위 공개 키 암호화 시스템은 다른 암호화 키와 암호 해독 키를 사용하는 것입니다. "알려진 암호화 키에서 암호 해독 키를 도출하는 것은 계산적으로 불가능한"암호화 시스템입니다.
공개 키 암호화 시스템에서 암호화 키 (즉, 공개 키) PK는 공개 정보이며, 암호 해독 키 (즉, 비밀 키) SK는 기밀로 유지해야합니다. 암호화 알고리즘 E 및 암호 해독 알고리즘 D도 공개됩니다. 암호 해독 키 SK는 공개 키 PK에 의해 결정되지만 SK는 PK를 기반으로 계산할 수 없습니다.
nodejs의 암호화 모듈
OpenSSL은 이미 널리 사용되는 암호화 알고리즘이기 때문에 OpenSSL 라이브러리를 사용하여 암호화 기술을 구현합니다. 애플리케이션에서 사용할 수있는 MD5 또는 SHA-1과 같은 알고리즘이 포함되어 있습니다.
다음 코드는 암호화 모듈 DES 알고리즘 구현 방법을 사용합니다.
/*** * @Author ChenjianXiang * @Date 2016-07-07 */var crypto = require ( 'crypto'); var key = '12345670'; Exports.des = {allgorithm : {ecb : 'des-ecb', cbc : 'des-cbc'}, eccrypt : new key =); var iv = 새로운 버퍼 (iv? iv : 0); var cipher = crypto.createcipheriv (this.algorithm.ecb, key, iv); cipher.setAutopadding (true) // 기본적으로 true var cipher = cipher.update (PlainText, 'utf8', 'base64'); 암호 += cipher.final ( 'base64'); 반환 암호; }, decrypt : function (encrypt_text, iv) {var key = 새 버퍼 (키); var iv = 새로운 버퍼 (iv? iv : 0); var decipher = crypto.createdecipheriv (this.algorithm.ecb, key, iv); Decipher.SetAutoPadding (true); var txt = decipher.update (encrypt_text, 'base64', 'utf8'); txt += decipher.final ( 'utf8'); 반환 txt; }};DES 암호화 및 암호 해독 방법 사용
// var cryptutil = require ( "./ utils/crypt"); var str = "/upload/image/201602120012.jpg";var encrypt_text = cryptutil.des.encrypt (str, 0); var decrypt_text = cryptutil.des.decrypt (encrypt_text, 0); console.log (encrypt_text); console.log (decrypt_text);
출력 결과 :
i+qwosxqvbq18kvmx3ainomhbs3nt+v64s
/upload/image/201602120012.jpg
위의 Node.js des 암호화의 간단한 구현은 내가 공유하는 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.