JS 암호 화 플러그 인 CryptoJS AES 암호 화 작업 예제 구현

이 사례 는 JS 암호 화 플러그 인 CryptoJS 가 AES 암호 화 작업 을 실현 하 는 것 을 다 루 었 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
최근 에 데이터 의 안전성 을 고려 하여 우 리 는 데 이 터 를 전송 하 는 과정 에서 암호 화하 여 악의 적 인 조작 과 파충류 가 데 이 터 를 캡 처 하 는 것 을 방지 해 야 한다.
  • 에 사 용 된 라 이브 러 리:CryptoJS 공식 주소:https://code.google.com/archive/p/crypto-js/
  • 우선 이 CryptoJS 의 디 렉 터 리 구 조 를 살 펴 보 겠 습 니 다.

    주로 두 개의 폴 더,components,rollups 입 니 다.
    첫 번 째 는 구성 요소 이 고,두 번 째 는 집합 이다.
    집합 폴 더 에 있 는 파일 은 구성 요소 하나 이상 의 폴 더 를 연결 한 후에 압축 됩 니 다.
    이 때문에 독립 된 폴 더 를 프로젝트 파일 에 포함 시 키 고 의존 을 걱정 하지 않 아 도 됩 니 다.
    집합 파일 과 구성 요소 간 의 관 계 를 볼 수 있 습 니 다:
    https://code.google.com/p/crypto-js/source/browse/tags/3.1.2/builder/build.yml
    먼저 프로젝트 에 해당 하 는 암호 화 파일 을 도입 합 니 다.저 희 는 AES 를 사용 하고 RequireJS 로 JS 를 불 러 옵 니 다.설정 에서 경 로 를 설명 합 니 다.
    
    require.config({
      baseUrl: "/Public/Home/Js/lib",
      paths: {
        hzbAES:'../module/hzb.AES'
      }
    });
    
    
    우선 암호 화 복호화 를 모듈 로 밀봉 합 니 다.
    
    //     
    var init=function () {
        key = CryptoJS.enc.Utf8.parse(CryptoJS.MD5(ym.hezubao).toString());
        iv = CryptoJS.enc.Utf8.parse(CryptoJS.MD5(key).toString().substr(0,16));
    }
    function encrypt(data) {
        var encrypted='';
        if(typeof(data)=='string')
        {
          encrypted = CryptoJS.AES.encrypt(data,key,{
            iv : iv,
            mode : CryptoJS.mode.CBC,
            padding : CryptoJS.pad.ZeroPadding
          });
        }else if(typeof(data)=='object'){
          data = JSON.stringify(data);
          encrypted = CryptoJS.AES.encrypt(data,key,{
            iv : iv,
            mode : CryptoJS.mode.CBC,
            padding : CryptoJS.pad.ZeroPadding
          })
        }
        return encrypted.toString();
    }
    /*AES  
    * param : message   
    * return : decrypted string   
    */
    function decrypt(message) {
        decrypted='';
        decrypted=CryptoJS.AES.decrypt(message,key,{
          iv : iv,
          mode : CryptoJS.mode.CBC,
          padding : CryptoJS.pad.ZeroPadding
        });
        return decrypted.toString(CryptoJS.enc.Utf8);
    }
    
    
    코드 설명:
  • 저희 가 암호 화 한 모드 는 CBC 를 선택 한 다음 에 충전 모드 는 0 을 채 우 는 것 입 니 다.이것 은 앞 배경 에서 약속 한 것 입 니 다.조심 하 세 요.암호 화 비밀 키 요 구 는 32 비트 긴 문자열(md5 암호 화 를 통 해 32 비트,알고리즘 제한)이 고 iv 초기 화 벡터 는 16 비트 길이 의 문자열 입 니 다.이 두 가지 물건 을 모 르 면 AES 암호 화 조건 을 보 세 요.
  • 주의해 야 할 것 은 암호 화가 완 료 된 문자열 은 Base 64 를 통 해 암호 화 된 것 입 니 다.즉,배경 복호화 모듈 은 문자 인 코딩 문 제 를 고려 해 야 합 니 다.이것 은 프로젝트 의 실제 적 인 결정 입 니 다.그 를 먼저 UTF 8 로 옮 긴 다음 에 백 스테이지 에 전달 할 수 있다.제 백 엔 드 는 Base 64 암호 화 를 소개 한 것 이기 때문에 코드 를 바 꾸 지 않 아 도 됩 니 다.
  • 복호화 후 UTF 8 로 전환 해 야 합 니 다.배경 에서 준 데이터 가 JSON 이 라면 JSON.parse() 번 을 사용 해 야 사용 할 수 있 습 니 다.
  • 코드 에서 호출
    
    require(['hzbAES'], function(hzbAES){
      var jsonData={'id':2,'username':'    '};//json    (    json        )
      $('#btn_test').click(function () {
        var encrypt=hzbAES.encrypt(jsonData);
          console.log('        :'+encrypt);//   
        $.getJSON(UrlGenerator.url(2,'Home','Index','test'),{'data':encrypt},function (data) {
          if(!data['error'])
          {
            var decrypt=JSON.parse(hzbAES.decrypt(data['data']));
            console.log('        :');//   
            console.log(decrypt);
          }else{
            console.log(data['error']);
          }
        })
      });
    });
    
    
    PS:암호 화 복호화 에 관심 이 있 는 친 구 는 본 사이트 의 온라인 도 구 를 참고 할 수 있 습 니 다.
    온라인 AES 암호 화/복호화 도구:
    http://tools.jb51.net/password/aes_encode
    텍스트 온라인 암호 화 복호화 도구(AES,DES,RC4 등 포함):
    http://tools.jb51.net/password/txt_encode
    온라인 인 코딩 변환 도구(utf-8/utf-32/Punycode/Base 64):
    http://tools.jb51.net/transcoding/decode_encode_tool
    BASE 64 인 코딩 도구:
    http://tools.jb51.net/transcoding/base64
    온라인 MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160 암호 화 도구:
    http://tools.jb51.net/password/hash_md5_sha
    온라인 sha 1/sha 224/sha 256/sha 384/sha 512 암호 화 도구:
    http://tools.jb51.net/password/sha_encode
    더 많은 자 바스 크 립 트 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
    본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기