Beachten Sie, dass es wahrscheinlich klüger ist, Ihre Daten direkt in Ihrer Anwendung und nicht in der Datenbank zu verschlüsseln und zu entschlüsseln.
Sie können Oracles DBMS_CRYPTO Paket verwenden. In der Mitte der Dokumentationsseite befindet sich ein example.
Zuerst müssen Sie ein Paket erstellen, um vom SQL-Ausdruck auf den Chiffre-Typ zuzugreifen. Nehmen wir an, Sie möchten AES256 im CBC-Modus mit Auffüllen:
Dann benötigen Sie einen Schlüssel. Sie können Oracle bitten, eins zu erzeugen. Um es einfach zu handhaben, verschiebe ich es in Base64. Lassen Sie sich ziehen ein:
DECLARE
key_bytes_raw RAW(32);
key_char NVARCHAR2(64);
BEGIN
key_bytes_raw := DBMS_CRYPTO.RANDOMBYTES(32);
key_char := UTL_I18N.RAW_TO_CHAR(UTL_ENCODE.BASE64_ENCODE(key_bytes_raw), 'AL32UTF8');
DBMS_OUTPUT.PUT_LINE('Key: ' || key_char);
END;
/
Key: pMV3D4xhyfNxp3YyfLWzAErGcKkIjK3X6uc/WIeVTls=
So ist der Chiffrierschlüssel ich werde pMV3D4xhyfNxp3YyfLWzAErGcKkIjK3X6uc/WIeVTls=
ist.
Jetzt werde ich eine Testtabelle verwenden
CREATE TABLE so_42979606 (
id NUMBER PRIMARY KEY,
data NVARCHAR2(2000));
Sie können verschlüsselte Daten einfügen:
INSERT INTO so_42979606
VALUES (1,
DBMS_CRYPTO.ENCRYPT(UTL_I18N.STRING_TO_RAW('My clear data', 'AL32UTF8'),
pkg_so_42979606.cipher_type(),
UTL_ENCODE.BASE64_DECODE(UTL_I18N.STRING_TO_RAW('pMV3D4xhyfNxp3YyfLWzAErGcKkIjK3X6uc/WIeVTls=', 'AL32UTF8'))));
Und die verschlüsselten Daten im Klar abrufen.
SELECT id, UTL_I18N.RAW_TO_NCHAR(DBMS_CRYPTO.DECRYPT(data,
pkg_so_42979606.cipher_type(),
UTL_ENCODE.BASE64_DECODE(UTL_I18N.STRING_TO_RAW('pMV3D4xhyfNxp3YyfLWzAErGcKkIjK3X6uc/WIeVTls=', 'AL32UTF8'))),
'AL32UTF8') data
FROM so_42979606;
ID DATA
-- ----------------------
1 My clear data
Siehe auch: [Datenbank Advanced Security Administrator-Handbuch/3 Absichern gespeicherter Daten Transparent Data Encryption verwenden] (https://docs.oracle.com/cd/B28359_01/network.111/b28530/asotrans.htm#g1011122) in der Oracle Hilfe. –
@ OlivierJacot-Descombes Vielen Dank für Ihren Vorschlag. Ich kann die transparente Datenverschlüsselung nicht verwenden, da sie in der Standard Edition nicht verfügbar ist. – Tajinder