回答編集履歴

2

base64エンコードについて追記

2021/07/15 01:24

投稿

F_I_A
F_I_A

スコア104

test CHANGED
@@ -35,3 +35,43 @@
35
35
 
36
36
 
37
37
  ※先ほどの質問への回答で「62進数変換すれば」と申し上げましたが、そもそも10進数21桁の時点で64bit環境ですらオーバーフローするので現実的な手法ではありませんでした。お詫びして訂正します。
38
+
39
+
40
+
41
+ ### open_sslが使えない環境とのことなので
42
+
43
+ 暗号化する必要がなければ、base64エンコードでどうでしょう?
44
+
45
+ ```PHP
46
+
47
+ $a = '9999999999999999999';
48
+
49
+ $b = '99';
50
+
51
+ $str = (string)$a.$b;
52
+
53
+ $b64enc = base64_encode($str);
54
+
55
+ echo $b64enc;//OTk5OTk5OTk5OTk5OTk5OTk5OTk5
56
+
57
+ $b64dec = base64_decode($b64_enc);
58
+
59
+ echo $b64dec;//999999999999999999999
60
+
61
+
62
+
63
+ $a = '1234567890123456789';
64
+
65
+ $b = '99';
66
+
67
+ $str = (string)$a.$b;
68
+
69
+ $b64enc = base64_encode($str);
70
+
71
+ echo $b64enc;//MTIzNDU2Nzg5MDEyMzQ1Njc4OTk5
72
+
73
+ $b64dec = base64_decode($b64_enc);
74
+
75
+ echo $b64dec;//123456789012345678999
76
+
77
+ ```

1

追記

2021/07/15 01:24

投稿

F_I_A
F_I_A

スコア104

test CHANGED
@@ -31,3 +31,7 @@
31
31
  ```
32
32
 
33
33
  これで重複を避けて暗号化することができます。
34
+
35
+
36
+
37
+ ※先ほどの質問への回答で「62進数変換すれば」と申し上げましたが、そもそも10進数21桁の時点で64bit環境ですらオーバーフローするので現実的な手法ではありませんでした。お詫びして訂正します。