⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encrypttest.java

📁 berkeley db 4.6.21的源码。berkeley db是一个简单的数据库管理系统
💻 JAVA
字号:
package com.sleepycat.db.test;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Ignore;import org.junit.Test;import static org.junit.Assert.assertEquals;import static org.junit.Assert.fail;import com.sleepycat.db.*;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.UnsupportedEncodingException;import com.sleepycat.db.test.TestUtils;public class EncryptTest {    public static final String ENCRYPTTEST_DBNAME = "encrypttest.db";    @BeforeClass public static void ClassInit() {        TestUtils.loadConfig(null);        TestUtils.check_file_removed(TestUtils.getDBFileName(ENCRYPTTEST_DBNAME), true, true);    }    @AfterClass public static void ClassShutdown() {        TestUtils.check_file_removed(TestUtils.getDBFileName(ENCRYPTTEST_DBNAME), true, true);    }    @Before public void PerTestInit()        throws Exception {        TestUtils.check_file_removed(TestUtils.getDBFileName(ENCRYPTTEST_DBNAME), true, true);    }    @After() public void PerTestShutdown()        throws Exception {        TestUtils.check_file_removed(TestUtils.getDBFileName(ENCRYPTTEST_DBNAME), true, true);    }    /*     * Test case implementations.     * To disable a test mark it with @Ignore     * To set a timeout(ms) notate like: @Test(timeout=1000)     * To indicate an expected exception notate like: (expected=Exception)     */    /*     * Test the basic db no env and encryption disabled.     */    @Test public void test1()        throws DatabaseException, FileNotFoundException, UnsupportedEncodingException    {        DatabaseConfig dbConf = new DatabaseConfig();        dbConf.setType(DatabaseType.BTREE);        dbConf.setAllowCreate(true);             Database db = new Database(TestUtils.getDBFileName(ENCRYPTTEST_DBNAME), null, dbConf);        DatabaseEntry key = new DatabaseEntry("key".getBytes("UTF-8"));        DatabaseEntry data = new DatabaseEntry("data".getBytes("UTF-8"));             db.put(null, key, data);             db.close();        //try { Thread.sleep(10000); } catch(InterruptedException e) {}             if(!findData("key"))            fail("Did not find the un-encrypted value in the database file after close");    }    /*     * Test database with encryption, no env.     */    @Test public void test2()        throws DatabaseException, FileNotFoundException, UnsupportedEncodingException    {        DatabaseConfig dbConf = new DatabaseConfig();        dbConf.setType(DatabaseType.BTREE);        dbConf.setAllowCreate(true);        dbConf.setEncrypted("password");        dbConf.setErrorStream(System.err);             Database db = new Database(TestUtils.getDBFileName(ENCRYPTTEST_DBNAME), null, dbConf);             DatabaseEntry key = new DatabaseEntry("key".getBytes("UTF-8"));        DatabaseEntry data = new DatabaseEntry("data".getBytes("UTF-8"));             db.put(null, key, data);             db.sync();        db.close();             if (findData("key"))            fail("Found the un-encrypted value in an encrypted database file after close");    }    private boolean findData(String toFind)    {        boolean found = false;        try {            String dbname = TestUtils.getDBFileName(ENCRYPTTEST_DBNAME);            File f = new File(dbname);            if (!f.exists() || f.isDirectory()) {                TestUtils.ERR("Could not find database file: " + dbname + " to look for encrypted string.");                return false;            }            FileInputStream fin = new FileInputStream(f);            byte[] buf  = new byte[(int)f.length()];            fin.read(buf, 0, (int)f.length());            fin.close();                     TestUtils.DEBUGOUT(1, "EncryptTest findData file length: " + buf.length);            byte firstbyte = (toFind.getBytes("UTF-8"))[0];            // buf can contain non-ascii characters, so no easy string search            for (int i = 0; i < buf.length - toFind.length(); i++)            {                if (buf[i] == firstbyte)                {                    if(toFind.compareTo(new String(buf, i, toFind.length())) == 0)                    {                        found = true;                        break;                    }                }            }        } catch(Exception e) {        }        return found;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -