【问题标题】:JDBC for SQLCipher用于 SQLCipher 的 JDBC
【发布时间】:2014-06-03 22:47:51
【问题描述】:

是否有任何适用于 SQLCipher 的 JDBC 驱动程序?我想用 javaSE 和加密的 SQLite 编写程序。我在互联网上搜索并没有找到关于 SQLCipher JDBC 的内容。

除了使用 SQLCipher 之外,还有其他关于加密 SQLite 的免费解决方案吗?我正在使用 JavaSE。

【问题讨论】:

  • 有 ODBC 驱动吗?
  • 我认为它也没有 ODBC 驱动程序
  • 那么它有原生的 c/c++ 库吗?您可能有一个 native(x) 应用程序来连接到上下文,然后使用 JNA 或 JNI 或 CORBA 从 java 应用程序调用 x。
  • 目前没有用于 SQLCipher 的公共 JDBC 驱动程序。如果您对 JDBC 驱动程序有商业需求,请通过 support@zetetic.net 给我们留言,我们可以讨论。

标签: java sqlite jdbc sqlcipher


【解决方案1】:

SQLite 的 JDBC 驱动程序有一个分支,可以修改它以使用 SQLCipher:sqlcipher-jdbc on GitHub。不过,您必须自己构建它。

当您构建它时,您会得到一个 JAR 文件,您必须在项目的类路径中提供该文件。

【讨论】:

  • 上面写着“(仅限 OS X)”
  • > 目前此处包含的唯一本机二进制文件适用于 64 位 OS X。
【解决方案2】:

https://github.com/Willena/sqlite-jdbc-crypt 上提供了一个名为 sqlite-jdbc-crypt(“支持加密和身份验证的 SQLite JDBC 驱动程序”)的 Apache 2.0 许可包

单击中心的“发布”选项卡以下载预构建的 .jar 文件。

这里是创建一个名为db.sql 的加密 SQLite 数据库的示例 Java 代码,该数据库使用密码 apassword 加密:

package com.name.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Test {

    public static void main(final String[] args) {

        try (final Connection connection = DriverManager.getConnection("jdbc:sqlite:db.sqlite", "",
                "apassword")) {
            try (final Statement stmt = connection.createStatement()) {
                stmt.execute("CREATE TABLE test (data TEXT(10));");
                stmt.execute("INSERT INTO test VALUES('hello');");
            }
            connection.close();
        } catch (final SQLException e) {
            e.printStackTrace();
        }

        System.out.println("finished");
        System.exit(0);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    相关资源
    最近更新 更多