Шифрование в SQL (SQLite) - PullRequest
       3

Шифрование в SQL (SQLite)

4 голосов
/ 10 декабря 2011

Я хочу зашифровать определенные данные, которые я хочу в таблицах ..

Например,

Мне нужно что-то вроде этого:

update mytable set column1 = encrypt(column1, "key") where condition;

и это:

select decrypt(column1, "key") from mytable where condition;

Есть ли какая-нибудь простая встроенная функция SQL в SQLite для достижения этой цели?

У меня есть функция Java для encrypt ()и decrypt (), мне нужно массово зашифровать столбец таблицы, и это будет слишком медленно, если я прочитаю столбец, приму функцию и затем выпишу обратно.Пожалуйста, сообщите.

Заранее спасибо.

1 Ответ

1 голос
/ 11 декабря 2011

SQLite имеет возможность предоставлять свои собственные функции - функцию create_function sqlite - которые вы можете использовать в выражении SQL.

Так что я бы искал функцию create_function в Java, например: http://ppewww.physics.gla.ac.uk/~tdoherty/sqlite/javasqlite-20050608/doc/SQLite/Database.html или вот даже пример http://www.daniweb.com/software-development/java/threads/221260

Например, в python это выглядит так (пример взят из http://docs.python.org/library/sqlite3.html Connection.create_function)

import sqlite3
import md5

def md5sum(t):
    return md5.md5(t).hexdigest()

con = sqlite3.connect(":memory:")
con.create_function("md5", 1, md5sum)
cur = con.cursor()
cur.execute("select md5(?)", ("foo",))
print cur.fetchone()[0]

Или: http://www.sqlite.org/c3ref/create_function.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...