OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
アイコン

OceanBaseデータベース

V4.3.5

    OceanBase logo

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについて法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. V4.3.5
    アイコンOceanBaseデータベース
    V 4.3.5
    • V 4.3.5

    AES_ENCRYPT

    最終更新日:2026-04-15 15:09:34  更新
    シェア
    このページの内容
    宣言
    説明
    例

    折りたたみ

    シェア

    宣言

    AES_ENCRYPT(str,key_str[,init_vector])
    

    説明

    キー文字列 key_str を使用して文字列 str を暗号化し、暗号化されたバイナリ文字列を返します。str には長さの制限がなく、この関数は str を自動的に暗号化ブロックの整数倍に補完します。暗号文の長さの計算式は次のとおりです:

    16 * (trunc(string_length / 16) + 1)
    

    いずれかの関数パラメータが NULL の場合、この関数は NULL を返します。

    AES_ENCRYPT()は、公式のAES(Advanced Encryption Standard)アルゴリズムを使用してデータの暗号化を実装します。AES標準では、さまざまな長さのキーを使用できますが、デフォルトは128ビットです。196ビットまたは256ビットのキー長も使用できます。キー長が長いほどセキュリティは高くなりますが、暗号化速度は低下します。 AES_ENCRYPT() と AES_DECRYPT() 関数は、初期化ベクトルを使用してブロック暗号化モードを制御できます:

    • block_encryption_mode システム変数は、ブロックベースの暗号化アルゴリズムのモードを制御するために使用されます。デフォルト値は aes-128-ecb であり、これは128ビットのキー長とECBモードを使用して暗号化することを示します。

    • init_vector パラメータは初期化ベクトルを表します:

      • 暗号化モードで init_vector パラメータを設定する必要がある場合、その長さは16バイト以上でなければなりません(16バイトを超える部分は無視されます)。init_vector が欠落している場合、エラーが発生します。

      • 暗号化モードで init_vector パラメータを設定する必要がない場合、このパラメータは無視されます。

      初期化ベクトルが必要な暗号化モードでは、暗号化と復号化に同じベクトルを使用する必要があります。

      obclient> SET block_encryption_mode = 'aes-256-cbc';
      obclient> SET @key_str ='My secret passphrase';
      obclient> SET @init_vector = '1111111111111111';
      obclient> SET @crypt_str = AES_ENCRYPT('text',@key_str,@init_vector);
      obclient> SELECT AES_DECRYPT(@crypt_str,@key_str,@init_vector);
      +-----------------------------------------------+
      | AES_DECRYPT(@crypt_str,@key_str,@init_vector) |
      +-----------------------------------------------+
      | text                                          |
      +-----------------------------------------------+
      1 row in set
      

      以下の表に、ブロック暗号化モード、サポートされているSSLライブラリ、および初期化ベクトルパラメータが必要かどうかの詳細情報を示します。

      ブロック暗号化モード サポートされるSSLライブラリ 初期化ベクトルが必要か
      ECB OpenSSL 不要です
      CBC OpenSSL はい
      CFB1 OpenSSL はい
      CFB8 OpenSSL はい
      CFB128 OpenSSL はい
      OFB OpenSSL はい

    例

    • 'hello world' を暗号化し、鍵は 'key' とします。暗号化後の文字列を @pass に保存します。

      obclient> SET @pass=AES_ENCRYPT('hello world', 'key','1111111111111111');
      Query OK, 0 rows affected
      
    • 暗号化後の文字列の長さを確認します(すべて2の整数乗です)。

      obclient> SELECT CHAR_LENGTH(@pass);
      +--------------------+
      | CHAR_LENGTH(@pass) |
      +--------------------+
      |                 16 |
      +--------------------+
      1 row in set
      
    • AES_DECRYPT() を使用して復号化します。

      obclient> SELECT AES_DECRYPT(@pass, 'key');
      ERROR 1582 (42000): Incorrect parameter count
      obclient> SELECT AES_DECRYPT(@pass, 'key','1111111111111111');
      +----------------------------------------------+
      | AES_DECRYPT(@pass, 'key','1111111111111111') |
      +----------------------------------------------+
      | hello world                                  |
      +----------------------------------------------+
      1 row in set
      

    前のトピック

    SM4_ENCRYPT
    最後

    次のトピック

    SM4_DECRYPT
    次
    このページの内容
    宣言
    説明
    例