回答編集履歴

2

コメントの結果を元に追記しました

2018/10/11 07:05

投稿

ockeghem
ockeghem

スコア11701

test CHANGED
@@ -71,3 +71,11 @@
71
71
  string(14) "b51a03f37f42d3"
72
72
 
73
73
  ```
74
+
75
+
76
+
77
+ ---
78
+
79
+
80
+
81
+ 結果見ました。改行の処理に問題があるようですね。

1

コメントを受け、追記しました

2018/10/11 07:05

投稿

ockeghem
ockeghem

スコア11701

test CHANGED
@@ -13,3 +13,61 @@
13
13
 
14
14
 
15
15
  XORを2回実施しているように見えます。すると、元に戻ると思うのですが、いかがでしょうか?
16
+
17
+
18
+
19
+ ---
20
+
21
+
22
+
23
+ XOR 2回は誤記とのこと。承知しました。
24
+
25
+ 以下がまずそうに見えます。
26
+
27
+
28
+
29
+ ```
30
+
31
+ $key = pack("cnv*", 0xB5, 0x1A, 0x3, 0xF3, 0x7F, 0x42, 0xD3);
32
+
33
+ ```
34
+
35
+
36
+
37
+ $key をダンプすると以下のようになります。
38
+
39
+
40
+
41
+ ```
42
+
43
+ <?php
44
+
45
+ $key = pack("cnv*", 0xB5, 0x1A, 0x3, 0xF3, 0x7F, 0x42, 0xD3);
46
+
47
+ var_dump(bin2hex($key));
48
+
49
+ 【実行結果】
50
+
51
+ string(26) "b5001a0300f3007f004200d300"
52
+
53
+ ```
54
+
55
+
56
+
57
+ 以下のようにすべきではないでしょうか?(pack関数の第1引数を "C*" に)
58
+
59
+
60
+
61
+ ```
62
+
63
+ <?php
64
+
65
+ $key = pack("C*", 0xB5, 0x1A, 0x3, 0xF3, 0x7F, 0x42, 0xD3);
66
+
67
+ var_dump(bin2hex($key));
68
+
69
+ 【実行結果】
70
+
71
+ string(14) "b51a03f37f42d3"
72
+
73
+ ```