ในระหว่างการพัฒนาและกระบวนการแอปพลิเคชันไคลเอนต์และเซิร์ฟเวอร์มักจะต้องส่งข้อมูล เมื่อข้อมูลส่วนตัวที่สำคัญมีส่วนเกี่ยวข้องนักพัฒนาจะนึกถึงการเข้ารหัสโดยธรรมชาติ แม้ว่าจะถูกสกัดกั้นโดย "คนที่มีสติ" ในระหว่างกระบวนการส่งข้อมูลข้อมูลจะไม่รั่วไหล ฉันเชื่อว่านักพัฒนาหลายคนเคยได้ยินอัลกอริทึมการเข้ารหัสเช่นการเข้ารหัส MD5, การเข้ารหัส BASE64, การเข้ารหัส DES, การเข้ารหัส AES, การเข้ารหัส RSA ฯลฯ การเข้ารหัสง่าย ๆ สามารถทำได้โดยใช้หรือและ ฯลฯ
คีย์การดำเนินการ ^ = 0x01 ที่ใช้ในรหัสตัวอย่างสามารถปรับแต่งกฎของคุณเอง กำหนดการดำเนินการของคุณเองเพื่อให้แน่ใจว่าข้อมูลย้อนกลับจะไม่สูญหาย คีย์ยังสามารถกำหนดคีย์ไดนามิกได้
รหัส Java
สตริงคงที่สาธารณะ myencode (String str) พ่น unsupportencodingexception {byte [] strbytes = str.getBytes ("UTF-8"); Byte [] NESTSTRYTE = BYTE ใหม่ [strbytes.length]; สำหรับ (int i = 0; i <strbytes.length; i ++) {newstrbyte [i] = (byte) (strbytes [i] ^ 0x01); } ส่งคืนสตริงใหม่ (Newstrbyte); } string encodestr = myEncode ("idmmna/" 547 ''+) ')%/"a ^*((! vnsme"); system.out.println (encodestr);รหัส JavaScript
รับไบต์ของ UTF-8
ฟังก์ชั่น toutf8array (str) {var utf8 = []; สำหรับ (var i = 0; i <str.length; i ++) {var charcode = str.charcodeat (i); if (charcode <0x80) utf8.push (charcode); อื่นถ้า (charcode <0x800) {utf8.push (0xc0 | (charcode >> 6), 0x80 | (charcode & 0x3f)); } อื่นถ้า (charcode <0xd800 || charcode> = 0xe000) {utf8.push (0xe0 | (charcode >> 6), 0x80 | (charcode & 0x3f)); } else ถ้า (charcode <0xd800 || charcode> = 0xe000) {utf8.push (0xe0 | (charcode >> 12), 0x80 | (charcode >> 6) & 0x3f), 0x80 | (Charcode & 0x3f); } // คู่แฝงอื่น ๆ {i ++; // UTF-16 เข้ารหัส 0x10000-0x10ffff โดย // ลบ 0x10000 และแยก // 20 บิตของ 0x0-0xffffff ลงในสองครึ่ง charcode = 0x10000 + ((((((((charcode & 0x3ff)) << 10) | (str.charcodeat utf8.push (0xf0 | (charcode >> 18), 0x80 | ((charcode >> 12) & 0x3f), 0x80 | ((charcode >> 6) & 0x3f), 0x80 | (Charcode & 0x3f)); }} ส่งคืน UTF8; -รับไบต์และดำเนินการคำนวณ ^
bytes = stringtoasciibytearray (str); สำหรับ (var i = 0; i <bytes.length; i ++) {var newByte = (ไบต์ [i]^0x01); // newByte = (newByte^0x01); console.log (String.FromCharcode (newByte)); encodestr += string.fromCharcode (newByte); - console.log (encodestr);สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับตัวอย่างรหัสการส่งข้อมูลที่เข้ารหัสข้อมูลที่เข้ารหัสแบบกำหนดเองของ Java & JavaScript ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงเว็บไซต์นี้ต่อไปได้:
Java Exploration: ตัวอย่างรหัสที่เข้ารหัสและถอดรหัสของไฟล์เธรด+io
หลักการอัลกอริทึมการจับคู่สตริง Multimode และรหัสการใช้งาน Java
ตัวอย่างรหัสที่สมบูรณ์ของอัลกอริทึม Java เพื่อใช้ต้นไม้สีแดงและสีดำ
หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น