質問編集履歴

2

例の追加

2016/12/09 02:20

投稿

katsukihi
katsukihi

スコア10

test CHANGED
File without changes
test CHANGED
@@ -21,3 +21,33 @@
21
21
 
22
22
 
23
23
  以上のようにすると、`$tmp2`が`0gooog08osgg8kgg44cc4s44c4kkkcwc…`のように特定の文字しか出ない、偏った値になります。`$tmp3`に至っては0が並んでいるだけです(`$tmp`と同じになるはずですよね)。何が原因なのか全く分かりません。うまく0-9a-zまで使われるようにするためにはどうすれば良いのでしょうか?よろしくお願いします。
24
+
25
+
26
+
27
+ 追記
28
+
29
+ ```PHP
30
+
31
+ $tmp = bin2hex(openssl_random_pseudo_bytes(8)); // 短くしました
32
+
33
+ var_dump($tmp); echo "<br>";
34
+
35
+ $tmp2= base_convert($tmp,16,36);
36
+
37
+ var_dump($tmp2); echo "<br>";
38
+
39
+ $tmp3 = base_convert($tmp2,36,16);
40
+
41
+ var_dump($tmp3); echo "<br>";
42
+
43
+ ```
44
+
45
+ 結果
46
+
47
+ string(16) "ae130497bdec2f94"
48
+
49
+ string(13) "2nar3567tdusw"
50
+
51
+ string(16) "ae130497bdec3800"
52
+
53
+ どうやら短い場合でも最後の方が合わなくなるみたいです。

1

\$tmp3の部分に補足

2016/12/09 02:20

投稿

katsukihi
katsukihi

スコア10

test CHANGED
File without changes
test CHANGED
@@ -20,4 +20,4 @@
20
20
 
21
21
 
22
22
 
23
- 以上のようにすると、`$tmp2`が`0gooog08osgg8kgg44cc4s44c4kkkcwc…`のように特定の文字しか出ない、偏った値になります。`$tmp3`に至っては0が並んでいるだけです。何が原因なのか全く分かりません。うまく0-9a-zまで使われるようにするためにはどうすれば良いのでしょうか?よろしくお願いします。
23
+ 以上のようにすると、`$tmp2`が`0gooog08osgg8kgg44cc4s44c4kkkcwc…`のように特定の文字しか出ない、偏った値になります。`$tmp3`に至っては0が並んでいるだけです(`$tmp`と同じになるはずですよね)。何が原因なのか全く分かりません。うまく0-9a-zまで使われるようにするためにはどうすれば良いのでしょうか?よろしくお願いします。