Rumah  >  Artikel  >  hujung hadapan web  >  jquery melaksanakan penyulitan dan penyahsulitan aes

jquery melaksanakan penyulitan dan penyahsulitan aes

WBOY
WBOYasal
2023-05-23 22:18:062325semak imbas

Dengan perkembangan teknologi Internet, isu keselamatan rangkaian menjadi semakin ketara. Banyak laman web memerlukan pengguna memasukkan maklumat sensitif seperti kata laluan. Maklumat ini selalunya perlu disulitkan untuk memastikan keselamatan. AES (Advanced Encryption Standard) ialah algoritma penyulitan popular yang cekap, selamat dan boleh dipercayai. Dalam pembangunan bahagian hadapan, menggunakan jQuery untuk melaksanakan penyulitan dan penyahsulitan AES ialah kaedah biasa.

1. Pengenalan kepada penyulitan dan penyahsulitan AES

Penyulitan dan penyahsulitan AES ialah algoritma penyulitan simetri, yang bermaksud bahawa kunci yang sama digunakan untuk penyulitan dan penyahsulitan. Ia adalah sifir blok yang menyulitkan teks biasa ke dalam blok untuk membentuk teks sifir. Terdapat tiga algoritma penyulitan AES yang biasa digunakan: AES-128, AES-192 dan AES-256, yang masing-masing menggunakan kekunci 128-bit, 192-bit dan 256-bit.

Proses khusus algoritma penyulitan AES adalah seperti berikut:

  1. Mulakan algoritma pengembangan kunci, hasilkan kunci bulat berdasarkan kunci dan simpan kunci bulat dalam tatasusunan .
  2. Lakukan berbilang pusingan penyulitan Setiap pusingan penyulitan termasuk empat langkah: penggantian bait, peralihan baris, pengeliruan lajur dan penambahan kunci bulat.
  3. Pusingan terakhir penyulitan tidak termasuk pengeliruan lajur dan teks sifir terakhir ialah hasil penyulitan.

Algoritma penyahsulitan AES ialah proses terbalik bagi algoritma penyulitan AES, menukar teks sifir kepada teks biasa. Proses khusus adalah seperti berikut:

  1. Mulakan pengembangan kunci, jana kunci bulat dan simpan kunci bulat dalam tatasusunan.
  2. Lakukan berbilang pusingan penyahsulitan Setiap pusingan penyahsulitan merangkumi empat langkah: penambahan kunci bulat, pengeliruan lajur terbalik, anjakan mundur dan penggantian bait terbalik.
  3. Pusingan terakhir penyahsulitan tidak termasuk pengeliruan jujukan terbalik, dan teks biasa yang diperoleh ialah hasil penyahsulitan.

2. jQuery melaksanakan penyulitan AES

  1. Memperkenalkan perpustakaan CryptoJS

Sebelum melaksanakan operasi penyulitan AES, anda perlu memperkenalkan CryptoJS perpustakaan. CryptoJS ialah komponen penyulitan JavaScript yang menyediakan berbilang algoritma penyulitan seperti AES, DES, Triple DES, Blowfish, MD5 dan SHA-1. Ia boleh dimuat turun dari laman web rasmi http://cryptojs.altervista.org/.

Cara untuk memperkenalkan perpustakaan adalah seperti berikut:

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
  1. Tulis fungsi penyulitan

Selepas memperkenalkan perpustakaan CryptoJS, anda boleh menulis fungsi penyulitan . Berikut ialah pelaksanaan fungsi penyulitan AES-256:

function aesEncrypt(text, key) {
  var encrypted = CryptoJS.AES.encrypt(text, key);
  return encrypted.toString();
}

Teks parameter ialah teks biasa yang akan disulitkan dan kunci parameter ialah kuncinya. Mula-mula gunakan kaedah CryptoJS.AES.encrypt untuk melaksanakan pemprosesan penyulitan dan mendapatkan objek yang disulitkan. Kemudian panggil kaedah toString objek yang disulitkan untuk menukar hasil penyulitan ke dalam format rentetan.

  1. Panggil fungsi penyulitan untuk melaksanakan penyulitan

Selepas menulis fungsi penyulitan, anda boleh memanggil fungsi dalam jQuery untuk melaksanakan operasi penyulitan. Berikut ialah contoh:

$(document).ready(function() {
   var text = "hello world";
   var key = "this is a secret key";
   var encrypted = aesEncrypt(text, key);
   console.log(encrypted);
});

Hantar teks biasa dan kunci untuk disulitkan sebagai parameter ke dalam fungsi aesEncrypt untuk mendapatkan hasil penyulitan. Dalam contoh di atas, hasil penyulitan akan dikeluarkan kepada konsol.

3. jQuery melaksanakan penyahsulitan AES

  1. Tulis fungsi penyahsulitan

Sebelum melaksanakan operasi penyahsulitan AES, anda juga perlu memperkenalkan perpustakaan CryptoJS. Berikut ialah pelaksanaan fungsi penyahsulitan AES-256:

function aesDecrypt(text, key) {
  var decrypted = CryptoJS.AES.decrypt(text, key);
  return decrypted.toString(CryptoJS.enc.Utf8);
}

Teks parameter ialah teks sifir yang akan dinyahsulit dan kunci parameter ialah kuncinya. Mula-mula gunakan kaedah CryptoJS.AES.decrypt untuk melaksanakan pemprosesan penyahsulitan dan mendapatkan objek penyahsulitan. Kemudian panggil kaedah toString bagi objek yang dinyahsulit untuk menukar hasil yang dinyahsulit ke dalam format rentetan.

  1. Panggil fungsi penyahsulitan untuk menyahsulit

Selepas menulis fungsi penyahsulitan, anda juga boleh memanggil fungsi dalam jQuery untuk melaksanakan operasi penyahsulitan. Berikut ialah contoh:

$(document).ready(function() {
   var text = "U2FsdGVkX1/E0Dtap725gqwH+7D+W2m/6nV9gGPwsYE=";
   var key = "this is a secret key";
   var decrypted = aesDecrypt(text, key);
   console.log(decrypted);
});

Hantar teks sifir dan kunci untuk dinyahsulit sebagai parameter ke dalam fungsi aesDecrypt untuk mendapatkan hasil penyahsulitan. Dalam contoh di atas, hasil penyahsulitan akan dikeluarkan kepada konsol.

4. Ringkasan

jQuery boleh melaksanakan operasi penyulitan dan penyahsulitan AES dengan mudah Anda hanya perlu memperkenalkan perpustakaan CryptoJS untuk menggunakan algoritma AES untuk penyulitan dan penyahsulitan. Menggunakan algoritma AES boleh memastikan keselamatan penyulitan dan penyahsulitan serta mencegah kebocoran maklumat. Apabila melakukan pembangunan bahagian hadapan, menggunakan jQuery untuk melaksanakan operasi penyulitan dan penyahsulitan AES ialah kaedah biasa.

Atas ialah kandungan terperinci jquery melaksanakan penyulitan dan penyahsulitan aes. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn