JavaScript 가 구현 하 는 전단 AES 암호 화 복호화 기능[CryptoJS 기반]
4492 단어 JavaScriptAES암호 화
js 전단 AES 암호 화
최근 프로젝트 수요 로 인해 MITM 를 한 번 했 는데 갑자기 HTTPS 를 사용 하 는 것 을 발견 하 더 라 도 데이터 전송 과정의 안전성 을 보장 할 수 없다.브로커 공격 을 통 해 Http 프로 토 콜 의 모든 내용 을 직접 얻 을 수 있 습 니 다.그래서 어느 정도 안전성 을 확보 하기 위해 간단 한 암호 화 를 시도 하기 시작 했다.
이번 에는 AES 암호 화 데 이 터 를 사용 하기 때문에 클 라 이언 트 와 서버 가 사용 하 는 같은 비밀 키 입 니 다.(프 리 젠 테 이 션 으로 만 RSA 를 추천 합 니 다)
우선 비밀번호 와 암호 화 에 사용 할 KEY 를 준비 하 겠 습 니 다.
var source = "ABCDEFG";
var aesKey = "8NONwyJtHesysWpM";
JS 암호 화 padding 과 mode 는 서버 와 대응 해 야 합 니 다.그렇지 않 으 면 복호화 할 수 없습니다.key 는 문자열 형식 입 니 다.처리 하고 사용 해 야 합 니 다.
주:PKCS5Padding 과 PKCS7Padding 은 같 습 니 다.
상단 에 표 시 된 encrypted Data 는 암호 화 된 결과 입 니 다.
JS 복호화 코드
encrypted Data 는 암호 화 된 데이터 입 니 다.
JS 를 통 해 직접 암호 화 된 데 이 터 는 대상 이 므 로 직접 복호화 할 수 없습니다.Base 64 문자열 로 변환 해 야 복호화 할 수 있 습 니 다.
서버 는 Base 64 이후 의 암호 화 데 이 터 를 되 돌려 야 합 니 다.
encryptedData = encryptedData.ciphertext.toString();
var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);
먼저 운행 결 과 를 살 펴 보 자.aes.js 파일 은 여 기 를 클릭 할 수 있 습 니 다본 사이트 다운로드
전체 테스트 코드 는 다음 과 같 습 니 다:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>www.jb51.net aes.js</title>
</head>
<script src="aes.js"></script>
<body>
<script>
var key = CryptoJS.enc.Utf8.parse("8NONwyJtHesysWpM");
var plaintText = 'ABCDEFGH'; //
var encryptedData = CryptoJS.AES.encrypt(plaintText, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
console.log(" :"+plaintText);
console.log(" :"+encryptedData);
encryptedData = encryptedData.ciphertext.toString();
var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);
var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8);
console.log(" :"+decryptedStr);
var pwd = "PCsUFtgog9/qpqmqXsuCRQ==";
//
var decryptedData = CryptoJS.AES.decrypt(pwd, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
console.log(" :"+decryptedStr);
</script>
</body>
</html>
코드 에 aes.js 전체 코드 를 가 져 오고 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 합 니 다http://tools.jb51.net/code/HtmlJsRun상기 실행 결 과 를 얻 을 수 있 습 니 다.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
더 많은 자 바스 크 립 트 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.