SQLServer2005を使っての暗号化について教えて下さい。
次のコードを実行し、暗号かされたレコードを複数行登録します。
(データベースを直接覗いてみるとうまく暗号化されて登録はされております)
OPEN SYMMETRIC KEY DES_KEY DECRYPTION BY PASSWORD = 'KeyPass';
INSERT INTO ANGOU_TEST
(
NAME_SEI,
NAME_MEI
)
VALUES
(
EncryptByKey(Key_GUID('DES_KEY'), '1'),
EncryptByKey(Key_GUID('DES_KEY'), '1')
)
その後SELECT文で複合をして表示すると、NULLとして表示される行がまれにあるのです。
(うまく行かない行とうまく行く行がまばらに出来てしまうのです...)
OPEN SYMMETRIC KEY DES_KEY DECRYPTION BY PASSWORD = 'KeyPass';
SELECT
CAST(DecryptByKey(NAME_SEI) AS VARCHAR(64)) AS NAME_SEI,
CAST(DecryptByKey(NAME_MEI) AS VARCHAR(64)) AS NAME_MEI
FROM
ANGOU_TEST
ちなみに、鍵は次のような方法で作りました。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'KeyPass'
CREATE SYMMETRIC KEY DES_KEY WITH ALGORITHM = DES
ENCRYPTION BY PASSWORD = 'KeyPass'
なぜこのような現象が起きてしまうのかご教授お願いします。
No.1ベストアンサー
- 回答日時:
データの暗号化について上手くいって無いようですね。
EncryptByKeyおよびDecryptByKeyの関数仕様は熟読しましたか?
テーブル定義で暗号化対象のカラムの型はどのようになっていますか?
EncryptByKeyの戻り値の型がvarbinary 型である事を考慮して見直してみては如何でしょうか?
参考URL:http://msdn.microsoft.com/ja-jp/library/ms174361 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- JavaScript Json のキーと値の出力の違いについて 2 2022/06/14 20:22
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- PHP php エラー 2 2022/10/23 16:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルの列数を調べたい
-
MYSQLで小数点を表示する場合と...
-
「VARCHAR(255)」を「text」に...
-
group byで最後のレコードを抽...
-
フレンドリストのようなものを...
-
時間範囲が重複したレコードを...
-
mysqlで50音順にorder byしたい。
-
INDIRECT関数の代替方法は?
-
カラム上の重複を削除するクエ...
-
MySQL 一つのテーブルで登録日...
-
自動販売機でホットとアイスが...
-
【Transact-sql】 where条件、i...
-
構造が異なる二つのテーブルをu...
-
SQLiteで「UPDATE table1 SET c...
-
now()かCURRENT_TIMESTAMPか
-
SELECT文で、指定カラム以外の...
-
MySQLで論理名を取得する方法
-
GREATESTで NULLをスルーする方...
-
巨大テーブルからインデックス...
-
欠番の取得方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルの列数を調べたい
-
group byで最後のレコードを抽...
-
MYSQLで小数点を表示する場合と...
-
[MySQL]LOAD DATA INFILE一部レ...
-
フレンドリストのようなものを...
-
WHEREなどの条件が多い場合、ど...
-
MYSQLのストアドでの動的SQLに...
-
select * での表示が崩れる?
-
MySQL AUTO_INCREMENTが最大に...
-
MySQL 改行コードを含む文字列...
-
「VARCHAR(255)」を「text」に...
-
MySQL テーブルの一部のカラム...
-
betweenを使うyyyy/mm/ddでの範...
-
MySQLのselect文で、最大ID値の...
-
データの暗号化について
-
ここで「INSERT INTO」を使う意...
-
時間範囲が重複したレコードを...
-
MYSQLのレコードを上書きしたい...
-
誤って削除したIDカラムを復元...
-
INDIRECT関数の代替方法は?
おすすめ情報