sqlite3加密

sqlite3加密,第1张

概述在加密和解密的时候我们都依赖于一个key, 这个key的生成会决定着加密效果。key可以保存在内存中或者以二进制的形式写入到文件,每次当程序启动时,从文件读取到内存中。key的生成,我们可以自定义一些规则,比如当前用户的密码+特定字符串,当前deviceId+特定字符串等等。这个就自定义了。 public static byte[] encrypt(byte[] key, byte[]data)

在加密和解密的时候我们都依赖于一个key,这个key的生成会决定着加密效果。key可以保存在内存中或者以二进制的形式写入到文件,每次当程序启动时,从文件读取到内存中。key的生成,我们可以自定义一些规则,比如当前用户的密码+特定字符串,当前deviceid+特定字符串等等。这个就自定义了。

public static byte[] encrypt(byte[] key,byte[]data) {        SecretKeySpec sKeySpec = new SecretKeySpec(key,"AES");        Cipher cipher;        byte[] encryptedData = null;        try {            cipher = Cipher.getInstance("AES");            cipher.init(Cipher.ENCRYPT_MODE,sKeySpec);            encryptedData = cipher.doFinal(data);        } catch (Exception e) {            Log.i(TAG,145)">"encrypt exception" + e.getMessage());        }        return encryptedData;    }    byte[] decrypt(byte [] decryptedData .DECRYPT_MODE,sKeySpec);            decryptedData "decrypt exception" return decryptedData;    }    byte[] generateKey(byte[] randomNumberSeed) {        SecretKey sKey null;        KeyGenerator keyGen;        try {            keyGen = KeyGenerator"AES");            SecureRandom random = SecureRandom"SHA1PRNG");            random.setSeed(randomNumberSeed);            sKey = keyGen.generateKey();        } catch (NoSuchAlgorithmException e) {            Log"generateKey exception" return sKey.getEncoded();    }    //调用的demo    voID testAES() {        String randomNumberSeed = "aaaa";        String data "Hello World";        byte [] key = generateKey(randomNumberSeed.getBytes());        byte [] encryptData = encrypt(key,data.getBytes());        String str = Base64.encodetoString(encryptData,Base64.DEFAulT);        Log"encrypt data:" + str);        byte [] decodeData .decode(str,93)">+ new String(decrypt(key,decodeData)));    }
引用:https://github.com/fred-ye/summary/issues/47

参考:

安卓sqlite加密---第三方开源-sqlCipher http://www.bafenbaosoft.com/post/11.HTML

http://iCodingnotes.com/2015/03/09/AndroID%E7%AC%94%E8%AE%B0%E4%B9%8B%E5%AE%89%E5%85%A8%E7%AF%87%EF%BC%88%E9%9B%B6%EF%BC%89%E2%80%94%E2%80%94%E4%BD%BF%E7%94%A8sqlCipher%E5%8A%A0%E5%AF%86sqlite%E6%95%B0%E6%8D%AE%E5%BA%93/

SQLite全面学习(一)
http://www.codeceo.com/article/sqlite-learning-01.HTML
androID-lite-orm https://github.com/litesuits/androID-lite-orm

总结

以上是内存溢出为你收集整理的sqlite3加密全部内容,希望文章能够帮你解决sqlite3加密所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存