Saya tidak bisa menemukan contoh bersih yang bagus untuk menggunakan enkripsi AES 128 bit.
Apakah ada yang punya kode sampel?
c#
cryptography
aes
rijndaelmanaged
Dan Esparza
sumber
sumber
Jawaban:
Jika Anda hanya ingin menggunakan penyedia crypto built-in RijndaelManaged, lihat artikel bantuan berikut (ini juga memiliki contoh kode sederhana):
Dan kalau-kalau Anda membutuhkan sampel dengan terburu-buru, ini dia semua kemuliaan yang dijiplak:
sumber
using ()
blok otomatis membuang objek myRijndael (dan setiap objek RijndaelManaged lain dalam contoh ini). Mungkin komentar Anda adalah untuk versi jawaban sebelumnya, atau tautan menunjukkan contoh yang buruk, tetapi itu tidak terjadi hari ini.Saya baru-baru ini harus menghadapi ini lagi dalam proyek saya sendiri - dan ingin membagikan kode yang lebih sederhana yang telah saya gunakan, karena pertanyaan dan rangkaian jawaban ini terus muncul dalam pencarian saya.
Saya tidak akan membahas masalah keamanan tentang seberapa sering memperbarui hal-hal seperti Salt dan Inisialisasi Vektor Anda - itu adalah topik untuk forum keamanan, dan ada beberapa sumber daya yang bagus untuk dilihat. Ini hanyalah satu blok kode untuk diterapkan
AesManaged
di C #.Kode ini sangat mudah digunakan. Ini benar-benar hanya membutuhkan yang berikut:
Secara default, implementasi menggunakan AesManaged - tetapi Anda sebenarnya juga bisa memasukkan yang lain
SymmetricAlgorithm
. DaftarSymmetricAlgorithm
pewaris yang tersedia untuk .NET 4.5 dapat ditemukan di:http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm.aspx
Pada saat posting ini, daftar saat ini meliputi:
AesManaged
RijndaelManaged
DESCryptoServiceProvider
RC2CryptoServiceProvider
TripleDESCryptoServiceProvider
Untuk menggunakan
RijndaelManaged
kode di atas, sebagai contoh, Anda akan menggunakan:Saya harap ini membantu seseorang di luar sana.
sumber
The name 'GetBytes' does not exist in the current context
. Dapatkah saya menanyakan versi .NET framework apa yang Anda gunakan?Lihat contoh di sini ..
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged(v=VS.100).aspx#Y2262
Contoh pada MSDN tidak berjalan normal (terjadi error) karena tidak ada nilai awal dari Initial Vector (iv) dan Key . Saya menambahkan kode 2 baris dan sekarang bekerja normal.
Lebih detail lihat di bawah ini:
sumber
Menggunakan AES atau menerapkan AES? Untuk menggunakan AES, ada kelas System.Security.Cryptography.RijndaelManaged.
sumber
Untuk contoh yang lebih lengkap yang melakukan derivasi kunci selain enkripsi AES, lihat jawaban dan tautan yang diposting di Mendapatkan enkripsi AES untuk bekerja di Javascript dan C # .
EDIT
catatan tambahan: Kriptografi Javascript dianggap berbahaya. Layak dibaca.
sumber
sumber
http://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt
sumber
Coba kode ini, mungkin berguna.
1. Buat Proyek C # Baru dan tambahkan kode berikut ke Form1:
2. Buat clsCrypto.cs dan salin tempel kode berikut di kelas Anda dan jalankan kode Anda. Saya menggunakan MD5 untuk menghasilkan Initial Vector (IV) dan KEY dari AES.
sumber
Anda dapat menggunakan kata sandi dari kotak teks seperti kunci ... Dengan kode ini Anda dapat mengenkripsi / mendekripsi teks, gambar, dokumen kata, pdf ....
Ubah kata sandi dari kotak teks ke array byte ...
sumber
berikut adalah kode yang rapi dan bersih untuk memahami algoritma AES 256 yang diimplementasikan dalam C # memanggil fungsi Enkripsi sebagai
encryptedstring = cryptObj.Encrypt(username, "AGARAMUDHALA", "EZHUTHELLAM", "SHA1", 3, "@1B2c3D4e5F6g7H8", 256);
sumber