我已经看到很多关于如何检查Base64的RegEx答案,但我找不到专门针对256位数字的表示。
我是Base64,字节转换和RegEx的新手。 This answer似乎是检查Base64的最佳选择,但我无法从详细信息中了解它是否可以专门应用于256位数的表示。
^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
我需要确保这些字符串的有效性,因为我将它们用作Ed25519密钥的编码,而我的en/decoder似乎接受非ASCII字符。
我真的不明白这是否可以专门应用于256位数字的表示。
RegEx如何验证Base64编码的256位数?
答案 0 :(得分:4)
正如portforwardpodcast指出的那样,256位数字将被解码为43个字符,最后一个=
作为填充。
只有前四位用于第43个字符所代表的数字,因此它只能是一个字符,表示最后两位为零的数字。
你可以创建一个比任何base64字符串更简单的正则表达式来验证它,因为你知道它应该有多长:
^[A-Za-z0-9+/]{42}[AEIMQUYcgkosw048]=$
答案 1 :(得分:0)
我会采取以下步骤:
ampqampqampqampqampqampqampqampqampqampqamo=
所有256位数字在编码到base64时都具有相同的长度。这意味着它们将包含43个字符,后跟一个=总共44个字符。您应该可以使用它作为快捷方式来确定base64编码的字符串代表256位。