質問するログイン新規登録

回答編集履歴

2

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

2021/07/15 01:24

投稿

F_I_A
F_I_A

スコア104

answer CHANGED
@@ -16,4 +16,24 @@
16
16
  ```
17
17
  これで重複を避けて暗号化することができます。
18
18
 
19
- ※先ほどの質問への回答で「62進数変換すれば」と申し上げましたが、そもそも10進数21桁の時点で64bit環境ですらオーバーフローするので現実的な手法ではありませんでした。お詫びして訂正します。
19
+ ※先ほどの質問への回答で「62進数変換すれば」と申し上げましたが、そもそも10進数21桁の時点で64bit環境ですらオーバーフローするので現実的な手法ではありませんでした。お詫びして訂正します。
20
+
21
+ ### open_sslが使えない環境とのことなので
22
+ 暗号化する必要がなければ、base64エンコードでどうでしょう?
23
+ ```PHP
24
+ $a = '9999999999999999999';
25
+ $b = '99';
26
+ $str = (string)$a.$b;
27
+ $b64enc = base64_encode($str);
28
+ echo $b64enc;//OTk5OTk5OTk5OTk5OTk5OTk5OTk5
29
+ $b64dec = base64_decode($b64_enc);
30
+ echo $b64dec;//999999999999999999999
31
+
32
+ $a = '1234567890123456789';
33
+ $b = '99';
34
+ $str = (string)$a.$b;
35
+ $b64enc = base64_encode($str);
36
+ echo $b64enc;//MTIzNDU2Nzg5MDEyMzQ1Njc4OTk5
37
+ $b64dec = base64_decode($b64_enc);
38
+ echo $b64dec;//123456789012345678999
39
+ ```

1

追記

2021/07/15 01:24

投稿

F_I_A
F_I_A

スコア104

answer CHANGED
@@ -14,4 +14,6 @@
14
14
  $decrypt = openssl_decrypt($encrypt,'aes-256-ecb',$key);
15
15
  echo $decrypt;//999999999999999999999
16
16
  ```
17
- これで重複を避けて暗号化することができます。
17
+ これで重複を避けて暗号化することができます。
18
+
19
+ ※先ほどの質問への回答で「62進数変換すれば」と申し上げましたが、そもそも10進数21桁の時点で64bit環境ですらオーバーフローするので現実的な手法ではありませんでした。お詫びして訂正します。