Lua 中数据库加密

我正在处理一个数据库并且试图使其更加安全。我已经成功地创建了数据库并能够访问其中的信息。然而,一旦我尝试对数据库中的每一条信息进行加密,就会遇到麻烦。我正在使用 sqlite3 作为我的数据库,同时使用 openssl 尝试对数据库进行加密。

   local users = [[CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username, password);]]
   db:exec( users )

   local nameData = cipher:encrypt ( nameField.text, "sbs_math_key" )
   local passData = cipher:encrypt ( passwordField.text, "sbs_math_key" )

   local tablefill =[[INSERT INTO users VALUES (NULL, ']].. nameData ..[[',']].. passData ..[['); ]]
   db:exec( tablefill )

如果我要向一个已经存在的数据库中插入信息,这段代码可以正常工作。然而如果我要创建一个全新的数据库,则无法将加密信息插入其中。

点赞
用户4927949
用户4927949

    local nameData = mime.b64 ( cipher:encrypt ( nameField.text, "sbs_math_key") )
    local passData = mime.b64 ( cipher:encrypt ( passwordField.text, "sbs_math_key") )

    print( "Before : "..nameData )

    local tablefill =[[INSERT INTO users VALUES (NULL, ']].. nameData ..[[',']].. passData ..[['); ]]
    db:exec( tablefill )

    message = cipher:decrypt ( mime.unb64 ( nameData ), "sbs_math_key" )

    print( "After : "..message )
尝试这样做:

```lua
local nameData = mime.b64(cipher:encrypt(nameField.text, "sbs_math_key"))
local passData = mime.b64(cipher:encrypt(passwordField.text, "sbs_math_key"))

print("Before: " .. nameData)

local tablefill = [[INSERT INTO users VALUES (NULL, ']] .. nameData .. [[', ']] .. passData .. [[')]]
db:exec(tablefill)

message = cipher:decrypt(mime.unb64(nameData), "sbs_math_key")

print("After: " .. message)
2016-08-01 04:50:53