Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เข้ารหัสและถอดรหัสสตริงใน MySQL?


ในการเข้ารหัสและถอดรหัสใน MySQL ให้ใช้ AES_ENCRYPT() และ AES_DECRYPT() ใน MySQL -

ใส่ค่า yourTableName(AES_ENCRYPT(yourValue,yourSecretKey));select cast(AES_DECRYPT(yourColumnName, yourSecretKey) as char) from yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง demo63−> (−> value blob−> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (2.60 วินาที)

แทรกบางระเบียนลงในตารางโดยใช้คำสั่งแทรก เรากำลังเข้ารหัสขณะแทรก -

mysql> แทรกลงในค่า demo63 (AES_ENCRYPT('John','PASS')); เคียวรีตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที)mysql> แทรกลงในค่า demo63 (AES_ENCRYPT('David','PASS'));แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.41 วินาที)mysql> แทรกลงในค่า demo63 (AES_ENCRYPT('123456','PASS')); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.41 วินาที)

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก demo63;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------------------------+| ค่า |+------------------------------------------+| 0x16D8A4F11321D761920783BF96BB8314 || 0x0A85099F705F21D27B0129C54C4473AA || 0xAB7C6D6068BC100B0F04D1C4EA068AC9 |+------------------------------------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามที่จะถอดรหัส -

mysql> เลือก cast(aes_decrypt(value, 'PASS') AS char) จาก demo63;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------------------------------------------+| cast(aes_decrypt(value, 'PASS') AS ถ่าน) |+----------------------------------- --------+| จอห์น || เดวิด || 123456 |+------------------------------------------+3 แถวในชุด (0.00 วินาที)