Sobes.tech
Junior — Middle

Кои методи за криптиране и техники за защита на данните познаваш?

sobes.tech AI

Отговор от AI

В Java често се използват следните методи и техники за криптиране и защита на данни:

  • Симетрично криптиране (например AES) — един ключ за криптиране и декриптиране.
  • Асиметрично криптиране (например RSA) — двойка ключове: публичен и частен.
  • Хеширане (например SHA-256) — еднопосочно преобразуване на данни за проверка на цялостта.
  • Цифрови подписи — за потвърждаване на автентичността и цялостта на данните.
  • Използване на Java Cryptography Architecture (JCA) и библиотеки като Bouncy Castle.

Пример за използване на AES за криптиране на низ:

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;

public class EncryptionExample {
    public static void main(String[] args) throws Exception {
        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
        keyGen.init(128);
        SecretKey secretKey = keyGen.generateKey();

        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);

        String text = "Hello, World!";
        byte[] encrypted = cipher.doFinal(text.getBytes());

        System.out.println("Encrypted data: " + java.util.Base64.getEncoder().encodeToString(encrypted));
    }
}