質問編集履歴

2

説明の追加

2016/09/14 01:00

投稿

gogoackman3
gogoackman3

スコア109

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,118 @@
1
+ 【追記】
2
+
3
+
4
+
5
+ 暗号化及び復号化させる処理は以下の通りになっています。
6
+
7
+
8
+
9
+ ```php
10
+
11
+ static function new_digest ($token) {
12
+
13
+ $key = 'sfajeowif239jkljifw7';
14
+
15
+
16
+
17
+ /* モジュールをオープンし、IV を作成 */
18
+
19
+ $td = mcrypt_module_open('des', '', 'ecb', '');
20
+
21
+ $key = substr($key, 0, mcrypt_enc_get_key_size($td));
22
+
23
+ $iv_size = mcrypt_enc_get_iv_size($td);
24
+
25
+ $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
26
+
27
+ /* 暗号化ハンドルを初期化 */
28
+
29
+ if (mcrypt_generic_init($td, $key, $iv) != -1) {
30
+
31
+
32
+
33
+ /* データを暗号化 */
34
+
35
+ $digest = mcrypt_generic($td, $token);
36
+
37
+ mcrypt_generic_deinit($td);
38
+
39
+
40
+
41
+ /* 後始末 */
42
+
43
+ mcrypt_generic_deinit($td);
44
+
45
+ mcrypt_module_close($td);
46
+
47
+ return $digest;
48
+
49
+ }
50
+
51
+ }
52
+
53
+
54
+
55
+
56
+
57
+ ```
58
+
59
+
60
+
61
+ ```php
62
+
63
+ static function restore_digest ($digest) {
64
+
65
+ $key = 'sfajeowif239jkljifw7';
66
+
67
+
68
+
69
+ /* モジュールをオープンし、IV を作成 */
70
+
71
+ $td = mcrypt_module_open('des', '', 'ecb', '');
72
+
73
+ $key = substr($key, 0, mcrypt_enc_get_key_size($td));
74
+
75
+ $iv_size = mcrypt_enc_get_iv_size($td);
76
+
77
+ $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
78
+
79
+ /* 暗号化ハンドルを初期化 */
80
+
81
+ if (mcrypt_generic_init($td, $key, $iv) != -1) {
82
+
83
+
84
+
85
+
86
+
87
+ /* 復号のため、バッファを再度初期化 */
88
+
89
+ mcrypt_generic_init($td, $key, $iv);
90
+
91
+ $token = mdecrypt_generic($td, $digest);
92
+
93
+
94
+
95
+ /* 後始末 */
96
+
97
+ mcrypt_generic_deinit($td);
98
+
99
+ mcrypt_module_close($td);
100
+
101
+ return $token;
102
+
103
+ }
104
+
105
+ }
106
+
107
+ ```
108
+
109
+
110
+
111
+ 【質問】
112
+
113
+
114
+
1
- Mcryptで暗号化した文字列をMysqlのDBに格納すると、値が変わってしまいます。
115
+ 上記Mcryptで暗号化した文字列をMysqlのDBに格納すると、値が変わってしまいます。
2
116
 
3
117
 
4
118
 

1

説明の修正

2016/09/14 01:00

投稿

gogoackman3
gogoackman3

スコア109

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,11 @@
26
26
 
27
27
 
28
28
 
29
+ やりたい事としては、Mcryptで暗号化した値をDBに格納し、それを取り出して復号化して元の値と一致しているかどうか判定する事です。
30
+
31
+
32
+
29
- とはいえ、そもそもvar_dumpした段階で文字化けしているのが問題なのでしょうか?
33
+ ①そもそも暗号化直後にvar_dumpした段階で文字化けしているのが問題なのでしょうか?
30
34
 
31
35
  ②それは関係なく、DBに格納した際に、凄く短い値に変わってしまうのが問題なのでしょうか?
32
36