2011-12-10 7 views
4
내가 테이블에서 원하는 특정 데이터를 암호화 할

.. 예를 들어암호화

,

나는 이런 식으로 뭔가가 필요합니다

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

이를 :

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

3 가지 간단한 내장 SQL 함수가 이것을 수행하려면 SQLite을 수행 하시겠습니까?

나는 암호화를위한 자바() 함수를 가지고() 해독, 나는 테이블 컬럼 암호화 대량으로 필요로하고 내가이 칼럼을 읽는다면 너무 느릴 수 기능을 적용하고 다시 작성합니다. 제발 조언.

미리 감사드립니다.

+0

당신은 sqlite3를 생산 너무 느린 것 말인가요? 나는 sqlite3가 개발을위한 가장 훌륭한 도구 중 하나라고 생각한다. 프로덕션에서는 Postgres 나 MySQL과 같은 다른 RDBMS를 사용합니다. 예를 들어 후자는 내장 된 일부 암호화 기능을 제공합니다. http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html – miku

답변

1

SQLite는 SQL 문에서 사용할 수있는 함수 인 create_function sqlite 함수를 제공 할 수 있습니다.

그래서 나는 자바 create_function, 예를 찾을 것입니다 : 여기 http://ppewww.physics.gla.ac.uk/~tdoherty/sqlite/javasqlite-20050608/doc/SQLite/Database.html 또는 http://www.daniweb.com/software-development/java/threads/221260

예를 들어, 파이썬에서 (예를 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

+0

Java를 사용하고 있습니다. 첫 번째 링크를 확인해주십시오. 그것은 404를 던집니다. – Rahim