我的回答是"什么是正确的",而不是"什么会起作用".
不要用latin1
.当然,它可能会起作用,但声称加密的字符串是文本而不是它是丑陋的.
说同样的CHAR...
.
简单地说,BINARY(...)
如果固定长度或VARBINARY(...)
它的长度可以变化.
但是,有一个问题...你用的是谁?它是否返回二进制数据?还是十六进制字符串?或者甚至可能是Base64?
我的上述答案假设它返回二进制数据.
如果它返回60个十六进制数字,则UNHEX(60_hex_digits)
存入BINARY(30)
以使其打包更小.
如果它是Base64,那么CHARACTER SET ascii COLLATE ascii_bin
将是"正确的".(具有区分大小写的排序规则的latin1也可以.)
如果它是二进制的,那么,再次,BINARY(60)
是'正确的方法.
您提供的链接看起来像Base64,但是它?而且是长达 60个字符?然后我会用
VARCHAR(60) CHARACTER SET ascii COLLATE ascii_bin
Run Code Online (Sandbox Code Playgroud)
并明确说明列的charset/collation,从而覆盖数据库和/或表"defaults".
所有Base64字符(和$)都是ascii; 不需要更复杂的字符集.使用..._bin
"精确比较字节" 的方式进行整理; 更具体地说"不要做折叠".由于Base64依赖于区分大写和小写字母,因此您不需要大小写折叠.
归档时间: |
|
查看次数: |
1675 次 |
最近记录: |