专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Java加密Sqlite库及文件

  原因:最近在用Sqlite存储数据,因涉及数据安全,所以需要数据库加密,Sqlite库默认不带加密功能目前已知的对SQLite加密的工具主要有〔SQLiteEncryptionExtension(SEE)〕、〔SQLiteEncrypt〕、〔SQLiteCrypt〕、〔SQLCipher〕,但是这里面仅有SQLCipher有免费版本。所以自己有个方案,针对Sqlite无法就是限制不能直接查看,那就对文件进行加密,需要连接的时候进行文件解密就可以了,如果大神有更好的解决方案,请告知,谢谢!
  packagecom。ts。tools;
  importcn。hutool。core。io。FileUtil;
  importcn。hutool。core。io。IoUtil;
  importcn。hutool。crypto。symmetric。SymmetricAlgorithm;
  importcn。hutool。crypto。symmetric。SymmetricCrypto;
  importjava。io。;
  加密解密文件
  authorxhc
  version1。0。0
  date20221031
  publicclassFileEnDe{
  publicstaticvoidmain(String〔〕args){
  try{
  加密密码
  Stringkeyabcdefghijklmnop;
  FileEnDe。encryptFile(D:test。db,key,true);
  FileEnDe。decryptFile(D:test。db,key);
  System。out。println(FileEnDe。isLocked(D:sysDb。db));
  }catch(Exceptione){
  thrownewRuntimeException(e);
  }
  }
  加密db文件(理论可以加密任何文件)
  paramfilePath文件路径
  paramkey16加密密码(必须16位)
  returnboolean
  throwsException
  publicstaticbooleanencryptFile(StringfilePath,Stringkey16,booleanisReadOnly){
  FileOutputStreamfosnull;
  booleanbFlagfalse;
  try{
  if(FileUtil。exist(filePath)){
  byte〔〕keykey16。getBytes();
  取文件名称含后缀
  StringfileNameFileUtil。getName(filePath);
  加密文件
  SymmetricCryptoaesnewSymmetricCrypto(SymmetricAlgorithm。AES,key);
  FileInputStreamfisnewFileInputStream(filePath);
  StringnewFilePathfilePathe;
  fosnewFileOutputStream(newFilePath);
  aes。encrypt(fis,fos,true);
  fos。close();
  删除源文件,注意如果文件被使用会报:另一个程序正在使用此文件,进程无法访问
  booleanisDelFileUtil。del(filePath);
  if(isDel){
  重命名加密文件为源文件
  FileUtil。rename(newFile(newFilePath),fileName,true);
  设置只读文件
  if(isReadOnly){
  FilefnewFile(filePath);
  f。setReadOnly();
  }
  }
  bFlagtrue;
  }else{
  thrownewRuntimeException(filePath文件不存在!);
  }
  }catch(Exceptione){
  thrownewRuntimeException(e);
  }finally{
  IoUtil。close(fos);
  }
  returnbFlag;
  }
  解密Db库
  paramfilePath文件路径
  paramkey16加密密码(必须16位)
  returnboolean
  throwsException
  publicstaticbooleandecryptFile(StringfilePath,Stringkey16){
  booleanbFlagfalse;
  FileOutputStreamfosnull;
  try{
  if(FileUtil。exist(filePath)){
  byte〔〕keykey16。getBytes();
  取文件名称含后缀
  StringfileNameFileUtil。getName(filePath);
  解密文件
  SymmetricCryptoaesnewSymmetricCrypto(SymmetricAlgorithm。AES,key);
  FileInputStreamfisnewFileInputStream(filePath);
  StringnewFilePathfilePathd;
  fosnewFileOutputStream(newFilePath);
  aes。decrypt(fis,fos,true);
  注意,解密之后fos并未关闭,请先关闭
  fos。close();
  删除源文件,注意如果文件被使用会报:另一个程序正在使用此文件,进程无法访问
  booleanisDelFileUtil。del(filePath);
  if(isDel){
  重命名加密文件为源文件
  FileUtil。rename(newFile(newFilePath),fileName,true);
  }
  bFlagtrue;
  }else{
  thrownewRuntimeException(filePath文件不存在!);
  }
  }catch(FileNotFoundExceptione){
  thrownewRuntimeException(filePath文件不存在!);
  }catch(Exceptione){
  thrownewRuntimeException(e);
  }finally{
  IoUtil。close(fos);
  }
  returnbFlag;
  }
  文件是否占用(采用重命名的方式)
  paramfilePath文件路径
  returnboolean
  publicstaticbooleanisLocked(StringfilePath){
  booleanbFlagfalse;
  StringnewFileName;
  StringfileName;
  try{
  if(FileUtil。exist(filePath)){
  采用重命名的方式,如果占用无法修改文件名称,如果未占用修改新的文件名称后再修改回来
  fileNameFileUtil。getName(filePath);
  newFileNamefileNamen;
  FileUtil。rename(newFile(filePath),newFileName,true);
  }
  }catch(Exceptione){
  bFlagtrue;
  }finally{
  如果未占用修改新的文件名称后再修改回来
  if(!bFlag){
  FileUtil。rename(newFile(filePathn),fileName,true);
  }
  }
  returnbFlag;
  }
  }

米体扎尼奥洛1月底有望续约,扎莱夫斯基年薪将增至120万直播吧12月1日讯罗马目前需要处理队内多名球员的续约问题,而米兰体育报透露了罗马续约工作的进展情况。首先最受人关注的球员是扎尼奥洛,他和罗马的合同在2024年6月到期。扎尼奥洛一直巫师3次世代版与原版对比截图画面提升很惊人近日据外媒Thegamer报道,国外Reddit论坛网友晒出了巫师3狂猎次世代版与原版的对比图,可以看到有明显差异,次世代版画面更加美丽了。原版次世代版巫师3原版截图在PC版最高画人民币国际货币进程小步快跑!剑指美国金融霸权心脏俄罗斯与巴西使用人民币交易,释放出美元国际货币地位危机,却是人民币国际货币进程大利好!标志着人民币国际货币进程小步快跑!剑指美国金融霸权心脏,美元霸权地位开始摇晃!备受美元欺凌的非信息安全行业前景如何?这八大发展趋势你了解吗?一发展趋势分析1可信化这个趋势是指从传统计算机安全理念过渡到以可信计算理念为核心的计算机安全。近年来计算机安全问题愈演愈烈,传统安全理念很非常难有所突破,人们试图利用可信计算的理念MLB棒球公益课与教练员培训班扬州站收官活动现场。主办方供图中国青年报客户端讯(中青报中青网记者梁璇)为期两周的MLBFIRSTPITCH棒球公益课与教练员培训班扬州站近日结束,来自江苏省扬州市20所小学及幼儿园约200韩国媒体怒了裁判泰勒声名狼藉,臭名昭著,让卡塔尔世界杯蒙羞2022世界杯目前,受到全世界足球迷关注的卡塔尔世界杯正在火热进行中,小组赛第二轮比赛已经全部结束。对于亚洲的韩国来说,第二轮小组赛无疑是非常不满意的。他们不仅不满意比赛的结果,更足球少年北体大范宇童千帆历尽,继尔前行南下西行东归北上,留下的足迹,流下过的汗水,遍布了大江南北大海内外。征程从未停下,在追逐梦想的旅途中从未止步,尽管前方的路途未知,但是身后总有一群人支撑陪伴和信任,向着目标和梦想一李铁戴罪立功?一天供出三个国足大将,知情人3人均已带走北京时间11月30日,围绕着前国足主帅李铁被带走调查的事件已经愈演愈烈,而在此之前关于李铁涉嫌严重违法的公告已经通报出来,也就暗示着李铁此次涉事严重性确实非常大,而随之关联的人员也世界杯C组晋级形势亚洲劲旅赢球就出线,阿根廷输球就出局2022世界杯北京时间2022年11月30日,卡塔尔世界杯继续进行小组赛,C组第三轮的两场比赛是波兰对阵阿根廷沙特阿拉伯对阵墨西哥,这两场比赛都是晋级生死战。对于目前排名小组第二位冲上热搜,韩国有孙兴慜还不满足?澎湃新闻记者宋承良沙特日本伊朗和澳大利亚先后在世界杯上赢球,然而被视为亚足联最强球队之一的韩国队,依然一胜难求。23输给加纳队,意味着韩国队出线希望已经非常渺茫了,因为仅积1分的他帕金斯评MVP前五塔字布莫兰特哈利伯顿,东契奇库里落榜引争议篮球评论员帕金斯今天凌晨在个人推特上晒出本赛季目前为止他心中的五大MVP人选,分别是1。塔图姆2。字母哥3。布克4。莫兰特5。哈利伯顿。引来热议,一起来看看球迷如何评论!Itspr
荣耀70处理器是多少?荣耀70处理器是什么型号?你要的答案在这里一荣耀70搭载高通骁龙778GPlus处理器荣耀70所搭载的处理器为高通骁龙778GPlus,简称高通骁龙778G。二高通骁龙778GPlus基本信息高通骁龙778GPlus处理器高成长企业海柔创新探索箱式仓储机器人潜能视频加载中南方财经全媒体记者袁新韫实习生肖奕妍深圳报道作为物流行业关键的组成部分,仓储物流机器人成为了物流行业解决分拣能力有限业务高度依赖人工操作等瓶颈的突破口。近期,海柔创新入选前后为OPPO代言了十多款手机,他曾被誉为OPPO最称职的代言人这段时间,关于明星李易峰PC被抓的事件一直占据着头条热门。相信有不少小伙伴都应该知道李易峰曾是OPPO的代言人,今天我们就来聊一聊他都代言过哪些OPPO手机?近日就有网友表示,记得谷歌搜索技巧大全,谷歌高级搜索语法指令全集谷歌搜索技巧是利用各种高级搜索语法或者搜索指令,让我们能够使用Google进行精确化的搜索,外贸找客户和学术文件查找都可以应用到这些搜索技巧。Google通过互联网收集数据,抓取有手机无法安装微信和QQ等APP?答案就在这里手机安装不了微信和QQ等APP?原因这里找强强强强强强原因很多,不同手机不同系统都会出现这样的情况,而且不仅仅是微信和QQ会出现这样的状况,下面就浅谈一下什么情况下软件无法安装吧!DST工业应用篇DST1型脱硫催化剂的开发与应用工业应用篇摘要东狮气体净化研究中心经过深入的研究及大量的试验,最终成功开发出DST1型脱硫催化剂及其脱硫工艺。该催化剂无毒无腐蚀性,并具有脱硫效率高元数据管理,企业数据治理的基石在企业架构体系中,数据架构始终是企业架构的核心组成部分,其中数据架构的元数据管理又是核心中的核心,那么元数据到底是什么?元数据应该如何治理?如何评估元数据的价值?这些问题成为企业管苹果正式解禁iPhone14Pro评测感受4800W像素金钱的力量(图源白问科技)文凯尔资讯9月14日2100,也就是今晚9点钟。苹果正式解禁了所有媒体评测机的数据,像数码圈大V的影视飓风白问科技钟文泽都卡点发布了最新的iPhone14系列视频。华为P50Pocketnew手机曝光搭载骁龙778G4G处理器此前型号为BALAL80的手机被认为是华为P50Pocket竖向折叠屏手机衍生产品,通过了3C认证,支持40W快充。近期这款华为P50Pocketnew折叠屏新型号手机通过工信部认明年的iPhone15系列会有哪些升级?iPhone14iPhone15明年的iPhone15系列会有哪些升级?今年iPhone14系列发布了,除了Pro系列将刘海换成药丸打孔并在软件上花了一点小心思,其他方面的升级可谓20G运存保证五年不卡,中兴高流畅度旗舰,现已降850元在国产手机品牌中,总会时不时地出现一些黑马,能称得上黑马旗舰的产品都是有着明显特长的。不知道大家有没有发现,在中兴这个品牌中其实也出现过一款黑马手机,当时发布的时候热度很高,几乎成
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网