假设表中的每一行都有与一个特定用户有关的数据.用户有密码来访问系统.
如何使用InnoDB加密一列数据,以便除了数据用户以外的任何人都无法读取数据?我正在考虑使用一种MySQL加密函数(比如AES)和一个基于根据用户密码计算的哈希的密钥.
有没有人对我如何做到这一点有任何指示?我是在正确的轨道上吗?
以下答案之一
修改用户密码的问题涉及通过新密码重新加密用户密钥,这比重新加密可以任意大的整组用户数据要简单得多.用户密钥在系统中的用户数据的整个生命周期内保持不变.
这有什么用?说密码是pass1.并且有一堆记录使用由此生成的密钥加密.如果用户现在将密码重置为pass2,我无法解密使用pass1加密的数据.在用户完全忘记密码的情况下,他的所有加密数据都将丢失.
我有这样的哈希:
my %h = ( a => { one => 1,
two => 2
},
b => { three => 3,
four => 4
},
c => { five => 5,
six => 6
}
);
print join(',', @{$h{a}{qw/one two/}});
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:不能使用未定义的值作为q.pl第17行的ARRAY引用,这是打印行.
我的预期是1,2