前段时间在做司天监操作系统的时候,有个紧迫的需求,就是将程序进行机密存储在SD卡中,因为程序是用JAVA写的,虽然做了扰码和加密处理,甚至重写了Classloader,但是还是害怕源码泄露,所以想到能否把程序放在一个加密分区中,系统加载的时候把加密分区进行加载,平时就是一块不知道是啥东西的数据,或者是一个固定大小的文件。
网上找了很多资料,没找到任何答案,但是看到问此类问题的人倒是挺多的,所以还是自己动手丰衣足食,然后把经验分享给大家。

这里会介绍两种方式,一种是基于文件格式的虚拟分区,另外一种是将SD卡扩展出新的分区。

需要安装的工具
cryptsetup,用于分区加密
sudo apt-get install cryptsetup

1. 创建分区
先说SD卡扩展分区的方式,创建分区的这两种方式网上有很多,所以如果我没写清楚的话可以去网上找找看。
sudo fdisk /dev/mmcblk0
进入fdisk工具,先说一下基本的命令:
p、打印分区表。
n、新建一个新分区。
d、删除一个分区。
q、退出不保存。
w、把分区写进分区表,保存并退出。
n是创建一个新的分区,注意开始位置一定要在最后一个分区之后,我看树莓派前面也空了一些,应该是放BootLoader用的吧,别用这块地方(我记得是2048的地方)
创建好后输入w命令保存

再说文件方式,因为有可能你的卡挺大,但是树莓派自动给你扩展root分区,而你有不会裁剪(这块资料网上也有),所以就用到了文件做虚拟分区的方式(其实和交换分区原理一样)。
啰嗦一句:我做母盘的时候用的是4G卡,卡做好后转成镜像文件3.7G,压缩一下1.2G,用这个母盘镜像烧其他大容量的卡然后做自动扩展的,这块内容留到其他文章里面详述吧。
dd if=/dev/zero of=~/disk1.dsk bs=1M count=40
关于dd命令网上也有很多介绍,不转了,可以去这里看看
https://blog.csdn.net/skdkjzz/article/details/39031959
我创建了一个40M的文件,因为我的程序够用了,如果不够用可以调整bs和count参数

2.加密分区
独立分区加密
sudo cryptsetup luksFormat /dev/mmcblk0p3
文件加密
sudo cryptsetup luksFormat ~/disk1.dsk
加密的时候首先要输入大写的YES,然后输入两次密码就会加密完成。
如果是分区形式的好像需要重启一次树莓派才能进行下一步操作,具体忘了。

3.做分区映射
独立分区映射
sudo cryptsetup luksOpen /dev/mmcblk0p3 disk1
文件映射
sudo cryptsetup luksOpen ~/disk1.dsk disk1
映射的时候需要输入你刚才设置的密码
映射完毕后去/dev/mapper/看看有没有disk1,当然,这个名字自己随便起,但尽量别用loop啥的

4.格式化分区
sudo mkfs -t ext4 /dev/mapper/disk1

5.挂载分区
sudo mount /dev/mapper/disk1 /prog

以上就是创建加密分区的所有步骤,如果没有设置自动挂载的话,第五步每次启动系统后需要手动加载。

关于树莓派程序加密和加密分区的设置相关推荐

  1. 磁盘加密软件TrueCrypt知识大全(三)之加密非系统分区/设备

    磁盘加密软件TrueCrypt知识大全(三)之加密非系统分区/设备 1.点击创建加密卷. 2.↑选择第2个,加密非系统分区/设备.第一个是通过创建文件的方式创建加密卷,由于文件容易误删除.丢失.破坏. ...

  2. 为加密的NTFS分区制作一把备份密钥

    如果你的硬盘上有NTFS分区,且对该分区中的数据进行了加密,那么应该制作备份密钥,以防万一.密钥的制作方法如下. 单击"开始→运行"命令,在打开的运行对话框中输入"cer ...

  3. iPhone程序中的加密处理

    本文转载至 http://blog.csdn.net/zaitianaoxiang/article/details/6650478 原文链接 : http://www.yifeiyang.net/ip ...

  4. ABB机器人模块加密软件,代模块加密,加密之后别人就看不见你 写的程序,也无法打开,但是可以正常运行

    ABB机器人模块加密软件,代模块加密,加密之后别人就看不见你 写的程序,也无法打开,但是可以正常运行3766626319431077朗朗上口929

  5. uniapp 小程序实现 RSA 加密

    uniapp 小程序实现 RSA 加密 引言 创建并使用 jsencrypt 进行 RSA 加密 创建 rsa 文件 在需要的地方引用 注意 引言 前端开发时,有时候不可避免会使用到加密,本人在这次的 ...

  6. 微信小程序接口实现加密

    微信小程序接口实现加密教程: 场景 小程序请求的所有接口参数必须加密,后台返回数据也需要加密,并且增加Token验证 一.小程序端功能编写 1.下载一份Js版的aesUtil.js源码.[注:文章末尾 ...

  7. 微信小程序RSA非对称加密。

    因公司做的产品为金融项目,所以对数据安全性有很高要求,因为项目中的数据都会通过3DES 对称加密,和RSA非对称加密进行数据传输. 在这里先简单介绍一下什么是对称加密和非对称加密 对称加密:对称加密采 ...

  8. APP加密,ios代码混淆工具,虚拟化技术 适用于移动应用程序的虚拟化加密软件

    概述: KiwiVM是用于移动应用程序的虚拟化加密软件. 它基于Clang编译器扩展,并且在编译项目时虚拟化指定的函数.借助自定义CPU指令的功能,一旦对代码进行加密并且从未解密,攻击者将无法恢复代码 ...

  9. 微信小程序——crypto-js参数加密、解密问题

    前言: 在很多项目中涉及到信息敏感问题,为防止http信息传输时参数被劫持进行二次传输的尴尬局面,最好使用前端加密参数请求,后端解密,返回数据时后端加密,前端解密.防止信息被盗取.目前主流的加密方式有 ...

最新文章

  1. 某单位招聘考试需要考核数学英语计算机,2010年10月自学考试电子商务网站设计原理试题...
  2. 对象----《你不知道的JS》
  3. OSI七层模型与TCP/IP四层模型
  4. React with Webpack - 2: css 处理
  5. vue-router和react-router嵌套路由layout配置方案的区别
  6. 1090. Highest Price in Supply Chain (25)
  7. opencv基础知识及其一些例子
  8. 组件化思维对于一个UI设计来说有多重要?
  9. 【异常 1】什么是异常
  10. html5 restore,HTML5 canvas save和restore方法讲解
  11. IDEA社区版配置Spring Boot开发
  12. 关于想写我与Java的故事,满脑子却都是与JavaCV纠缠不清的那段日子
  13. cmake(13):构建时设置预处理宏定义以及add_compile_definitions命令详解
  14. 设定软件使用期限,根据网络时间保护试用软件产品的方法
  15. MP3 ID3v1 ID3v2 APEv2 标准总结
  16. 学生用计算机怎么没音效,电脑有声音用播放器没有声音怎么处理啊???
  17. Python - 140种标准库、第三方库和外部工具整理
  18. 资源受限的移动边缘计算系统中计算卸载问题研究
  19. YOLOv5实战中国交通标志识别(TT100K数据集)
  20. 史上最美女程序员:手写代码把人类送上月球

热门文章

  1. 基于AndroidJava的食谱菜谱菜品APP设计
  2. goland 中国 caisy qq Czx123456
  3. ISP三层结构的理解(计算机网络)
  4. 大数据舆情监控应用平台,TOOM大数据舆情监控系统的作用
  5. SEO搜索引擎优化的来龙去脉
  6. android 盘点软件,安卓还能这么用!盘点那些神奇的安卓App
  7. python小玩意——纸牌21点游戏
  8. linux显卡驱动程序,在Linux下安装显卡驱动程序
  9. 关注计算机专业的就业前景
  10. CenterNet环境配置No module named '_ext'问题