10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册
PDF(美国高级主任)- 26.8 mb
PDF (A4)- 26.8 mb


12.17.2企业加密の使用法と例

アプリケーションで企业加密を使用するには,実行する演算に適した関数を呼び出します。このセクションでは,一部の典型的なタスクを実行する方法を示します。

タスク:rsa暗号化を使用して秘密鍵と公開鍵のペアを作成します。

——加密算法;可以是'DSA'或'DH',而不是SET @算法= 'RSA';—以比特为单位的最小密钥长度;SET @key_len = 1024;——创建私钥SET @priv = CREATE_ASYMMETRIC_PRIV_KEY(@算法,@key_len);——从私钥中导出对应的公钥,使用相同的算法SET @pub = CREATE_ASYMMETRIC_PUB_KEY(@ algorithm, @priv);

鍵のペアを使用すると,データを暗号化および復号化したり,データを署名および検証したり,対称鍵を生成したりできるようになりました。

タスク:秘密鍵を使用してデ,タを暗号化し,公開鍵を使用して復号化します。これには,鍵ペアのメンバ,がrsa鍵である必要があります。

SET @密文= ASYMMETRIC_ENCRYPT(@算法,'我的秘密文本',@priv);SET @明文= ASYMMETRIC_DECRYPT(@算法,@密文,@pub);

反対に,公開鍵を使用して暗号化し,秘密鍵を使用して復号化できます。

SET @密文= ASYMMETRIC_ENCRYPT(@算法,'我的秘密文本',@pub);SET @明文= ASYMMETRIC_DECRYPT(@算法,@密文,@priv);

いずれの場合でも,暗号化関数および復号化関数用に指定されたアルゴリズムは,鍵を生成したときに使用されたアルゴリズムと一致する必要があります。

タスク:文字列からダ化学键ジェストを生成します。

——摘要型;可以是'SHA256', 'SHA384',或'SHA512',而不是SET @dig_type = 'SHA224';——生成摘要字符串SET @dig = CREATE_DIGEST(@dig_type, '我的文本要摘要');

タスク:鍵ペアを含むダイジェストを使用してデータを署名してから,その署名がダイジェストと一致することを確認します。

——加密算法;可以改为“DSA”;密钥必须—已经使用相同的算法创建SET @算法= 'RSA';——针对摘要SET @sig = ASYMMETRIC_SIGN(@算法,@dig, @priv, @dig_type);——针对摘要SET @verf = ASYMMETRIC_VERIFY(@算法,@dig, @sig, @pub, @dig_type);

タスク:対称鍵を作成します。これには,共有対称シ,クレットを使用して作成されるdh秘密鍵/公開鍵が入力として必要です。鍵の長さをCREATE_DH_PARAMETERS ()に渡してシ,クレットを作成してから,そのシ,クレットを鍵の長さとしてCREATE_ASYMMETRIC_PRIV_KEY ()に渡します。

——生成DH共享对称秘密SET @dhp = CREATE_DH_PARAMETERS(1024);SET @算法= 'DH';SET @priv1 = CREATE_ASYMMETRIC_PRIV_KEY(@算法,@dhp);SET @pub1 = CREATE_ASYMMETRIC_PUB_KEY(@算法,@priv1);SET @priv2 = CREATE_ASYMMETRIC_PRIV_KEY(@算法,@dhp);SET @pub2 = CREATE_ASYMMETRIC_PUB_KEY(@算法,@priv2);——使用第一方的公钥生成对称密钥,——第二方的私钥SET @sym1 = ASYMMETRIC_DERIVE(@pub1, @priv2);——或者使用第二方公钥,第一方私钥SET @sym2 = asymmetric_派生(@pub2, @priv1);

鍵文字列の値は,选择,または插入を使用することで実行時に作成し,変数やテ,ブルに格納できます。

SET @priv1 = CREATE_ASYMMETRIC_PRIV_KEY('RSA', 1024);SELECT CREATE_ASYMMETRIC_PRIV_KEY('RSA', 1024) INTO @priv2;INSERT INTO t (key_col) VALUES(CREATE_ASYMMETRIC_PRIV_KEY('RSA', 1024));

ファ电子邮箱ルに格納されている鍵文字列の値は,文件権限を持ユザがLOAD_FILE ()関数を使用することで読み取ることができます。

ダesc escジェストと署名の文字列は,同様に処理できます。