Security_03_1312079 - ATBMHTTT-2017/lab02-lab02-1312079-1312169-1312273 GitHub Wiki

  • Sử dụng thuật toán mã hóa ENCRYPT_AES256 với CHAIN_CBC và PAD_PKCS.
  • ENCRYPT_AES256: Advanced Encryption Standard. Block cipher. Sử dụng khóa có kích thước 256 bit.
  • CHAIN_CBC: Cipher Block Chaining. Khối Plaintext kế tiếp được XOR với khối ciphertext trước đó trước khi nó được mã hóa. - Vector khởi tạo (IV) được xem như khối plaintext đầu tiên.
  • PAD_PKCS: Cung cấp cơ chế đệm thêm tuân theo chuẩn PKCS #5: Password-Based Cryptography Standard: thêm vào n số, chỉ n byte còn thiếu của khối cuối cùng. Nếu khối cuối cùng đủ, vẫn đệm thêm toàn bộ khối.

declare

input_string VARCHAR2 (200) := 'Secret Message';

output_string VARCHAR2 (200);

encrypted_raw RAW (2000); -- stores encrypted binary text

decrypted_raw RAW (2000); -- stores decrypted binary text

num_key_bytes NUMBER := 256/8; -- key length 256 bits (32 bytes)

key_bytes_raw RAW (32); -- stores 256-bit encryption key

encryption_type PLS_INTEGER := -- total encryption type

DBMS_CRYPTO.ENCRYPT_AES256

+ DBMS_CRYPTO.CHAIN_CBC

+ DBMS_CRYPTO.PAD_PKCS5;

begin

DBMS_OUTPUT.PUT_LINE ('Original string: ' || input_string);

key_bytes_raw := DBMS_CRYPTO.RANDOMBYTES (num_key_bytes);

encrypted_raw := DBMS_CRYPTO.ENCRYPT

( src => UTL_I18N.STRING_TO_RAW (input_string, 'AL32UTF8'),

typ => encryption_type,

key => key_bytes_raw

);

-- The encrypted value in the encrypted_raw variable can be used here

decrypted_raw := DBMS_CRYPTO.DECRYPT

(

src => encrypted_raw,

typ => encryption_type,

key => key_bytes_raw

);

output_string := UTL_I18N.RAW_TO_CHAR (decrypted_raw, 'AL32UTF8');

DBMS_OUTPUT.PUT_LINE ('Decrypted string: ' || output_string);

end;

  • Tạo 1 view V_NhanVien cho phép nhân viên coi thông tin tất cả nhân viên, riêng trường Lương thì chỉ được phép xem của chính mình (chỉ giải mã đúng được trường Lương của nhân viên đó)

create view V_NhanVien as

select maNV, hoTen, diaChi, dienThoai, email, maPhong, chiNhanh,

substr (sys.dbcrypt.decrypt(luong), 1, 35) as luong

from NhanVien_1312079_1312169_1312273;