【发布时间】:2016-03-02 16:41:58
【问题描述】:
我需要以一种可以加密的方式保存 id,这样它就可以占用 8 个字符。 我使用以下命令做到了这一点:
SELECT encode(LPAD(id,4,0),'abc')
此命令将 id = 1 变成 0001 然后把它变成代码 fe5ab21a
如何解密此代码?
下面是一个选择示例及其生成的结果
SELECT 0001
, DECODE(ENCODE('0001', 'abc'), 'abc')
, UNHEX(DECODE(ENCODE('0001', 'abc'), 'abc'))
, ENCODE('0001','abc')
, DECODE('fe5ab21a', 'abc')
, UNHEX(DECODE('fe5ab21a', 'abc'))
, HEX('0001')
结果:
1
30303031
0001
fe5ab21a
68d357a7005dcbe0
NULL
30303031
【问题讨论】:
-
你想用你的代码做什么?因为“加密的 id”听起来对我来说真的很糟糕......
-
我需要为一组用户生成短字符代码(他们必须手动输入)以供一次性使用,但我无法修改数据库的结构。表中唯一的唯一字段是 id。