DES là gì? Code ví dụ DES bằng Java – STACKJAVA
( Code ví dụ mã hóa với RSA )
( Code ví dụ mã hóa với AES )
DES là gì?
Data Encryption Standard (DES) là một thuật toán mã hóa dữ liệu.
Bạn đang đọc: DES là gì? Code ví dụ DES bằng Java – STACKJAVA
Đặc điểm:
- Là dạng mã hóa khối, kích thước khối vào 64 bít
- Khóa 64 bít, trong đó thực sử dụng 56 bít, 8 bít dùng cho kiểm tra chẵn lẻ
- DES sử dụng chung một giải thuật cho mã hóa và giải mã.
Hiện nay DES không được coi là an toàn do:
- Không gian khóa nhỏ (khóa 64 bít, trong đó thực sử dụng 56 bít)
- Tốc độ tính toán của các hệ thống máy tính ngày càng nhanh.
DES là loại mã hóa đối xứng ( mã hóa khóa bí hiểm ), sử dụng một khóa bí hiểm duy nhất cho cả quy trình mã hóa và giải thuật
( Ở bài này mình tập trung chuyên sâu vào thiết lập ví dụ mã hóa và giải thuật DES, còn cụ thể về DES thì nó khá dài, mình sẽ viết riêng một bài khác, hoặc những bạn hoàn toàn có thể tìm hiểu thêm cụ thể tại :
https://en.wikipedia.org/wiki/Data_Encryption_Standard
http://tryingshare123.blogspot.com/2014/09/java-security-phan-2-secret-key.html )Ví dụ mã hóa, giải mã với DES
1. Tạo key (tạo khóa mã hóa/giải mã)
String SECRET_KEY = "12345678"; SecretKeySpec skeySpec = new SecretKeySpec(SECRET_KEY.getBytes(), "DES");2. Cipher Info
Tạo một đối tượng người tiêu dùng Cipher ( đối tượng người dùng này dùng để mã hóa, giải thuật ) và chỉ rõ những thông tin :
- Tên thuật toán
- Mode (tùy chọn)
- Padding scheme (tùy chọn)
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5PADDING");Note: DES = Data Encryption Standard. ECB = Electronic Codebook mode. PKCS5Padding = PKCS #5-style padding.3. Mã hóa
String original = "stackjava.com"; Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5PADDING"); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); byte[] byteEncrypted = cipher.doFinal(original.getBytes()); String encrypted = Base64.getEncoder().encodeToString(byteEncrypted);Khi thực hiện mã hóa hay giải mã nó sẽ thực hiện trên
byte[]
(ở đây mình ví dụ mã hóa text nên chuyển text sang byte, các bạn có thể mã hóa tương tự với file)Ở đây mình chuyển byte sang dạng base64 để hiển thị .
4. Giải mã
cipher.init(Cipher.DECRYPT_MODE, skeySpec); byte[] byteDecrypted = cipher.doFinal(byteEncrypted); String decrypted = new String(byteDecrypted);5. Demo
package stackjava.com.demodes.main; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Base64; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; public class DemoDES { public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { String SECRET_KEY = "12345678"; SecretKeySpec skeySpec = new SecretKeySpec(SECRET_KEY.getBytes(), "DES"); String original = "stackjava.com"; Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5PADDING"); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); byte[] byteEncrypted = cipher.doFinal(original.getBytes()); String encrypted = Base64.getEncoder().encodeToString(byteEncrypted); cipher.init(Cipher.DECRYPT_MODE, skeySpec); byte[] byteDecrypted = cipher.doFinal(byteEncrypted); String decrypted = new String(byteDecrypted); System.out.println("original text: " + original); System.out.println("encrypted text: " + encrypted); System.out.println("decrypted text: " + decrypted); } }Kết quả:
original text: stackjava.com encrypted text: xvHjRlZOjIxmi+R3h4/gUw== decrypted text: stackjava.com
DES là gì ? Code ví dụ DES bằng Java
Okay, Done!
Download code ví dụ trên tại đây
Source: https://thomaygiat.com
Category : Kỹ Thuật Số
Chuyển vùng quốc tế MobiFone và 4 điều cần biết – MobifoneGo
Muốn chuyển vùng quốc tế đối với thuê bao MobiFone thì có những cách nào? Đừng lo lắng, bài viết này của MobiFoneGo sẽ giúp…
Cách copy dữ liệu từ ổ cứng này sang ổ cứng khác
Bạn đang vướng mắc không biết làm thế nào để hoàn toàn có thể copy dữ liệu từ ổ cứng này sang ổ cứng khác…
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel Xử lý dữ liệu từ máy chấm công là việc làm vô cùng…
Cách nhanh nhất để chuyển đổi từ Android sang iPhone 11 | https://thomaygiat.com
Bạn đã mua cho mình một chiếc iPhone 11 mới lạ vừa ra mắt, hoặc có thể bạn đã vung tiền và có một chiếc…
Giải pháp bảo mật thông tin trong các hệ cơ sở dữ liệu phổ biến hiện nay
Hiện nay, với sự phát triển mạnh mẽ của công nghệ 4.0 trong đó có internet và các thiết bị công nghệ số. Với các…
4 điều bạn cần lưu ý khi sao lưu dữ liệu trên máy tính
08/10/2020những chú ý khi tiến hành sao lưu dữ liệu trên máy tính trong bài viết dưới đây của máy tính An Phát để bạn…