关于树莓派程序加密和加密分区的设置
前段时间在做司天监操作系统的时候,有个紧迫的需求,就是将程序进行机密存储在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
以上就是创建加密分区的所有步骤,如果没有设置自动挂载的话,第五步每次启动系统后需要手动加载。
关于树莓派程序加密和加密分区的设置相关推荐
- 磁盘加密软件TrueCrypt知识大全(三)之加密非系统分区/设备
磁盘加密软件TrueCrypt知识大全(三)之加密非系统分区/设备 1.点击创建加密卷. 2.↑选择第2个,加密非系统分区/设备.第一个是通过创建文件的方式创建加密卷,由于文件容易误删除.丢失.破坏. ...
- 为加密的NTFS分区制作一把备份密钥
如果你的硬盘上有NTFS分区,且对该分区中的数据进行了加密,那么应该制作备份密钥,以防万一.密钥的制作方法如下. 单击"开始→运行"命令,在打开的运行对话框中输入"cer ...
- iPhone程序中的加密处理
本文转载至 http://blog.csdn.net/zaitianaoxiang/article/details/6650478 原文链接 : http://www.yifeiyang.net/ip ...
- ABB机器人模块加密软件,代模块加密,加密之后别人就看不见你 写的程序,也无法打开,但是可以正常运行
ABB机器人模块加密软件,代模块加密,加密之后别人就看不见你 写的程序,也无法打开,但是可以正常运行3766626319431077朗朗上口929
- uniapp 小程序实现 RSA 加密
uniapp 小程序实现 RSA 加密 引言 创建并使用 jsencrypt 进行 RSA 加密 创建 rsa 文件 在需要的地方引用 注意 引言 前端开发时,有时候不可避免会使用到加密,本人在这次的 ...
- 微信小程序接口实现加密
微信小程序接口实现加密教程: 场景 小程序请求的所有接口参数必须加密,后台返回数据也需要加密,并且增加Token验证 一.小程序端功能编写 1.下载一份Js版的aesUtil.js源码.[注:文章末尾 ...
- 微信小程序RSA非对称加密。
因公司做的产品为金融项目,所以对数据安全性有很高要求,因为项目中的数据都会通过3DES 对称加密,和RSA非对称加密进行数据传输. 在这里先简单介绍一下什么是对称加密和非对称加密 对称加密:对称加密采 ...
- APP加密,ios代码混淆工具,虚拟化技术 适用于移动应用程序的虚拟化加密软件
概述: KiwiVM是用于移动应用程序的虚拟化加密软件. 它基于Clang编译器扩展,并且在编译项目时虚拟化指定的函数.借助自定义CPU指令的功能,一旦对代码进行加密并且从未解密,攻击者将无法恢复代码 ...
- 微信小程序——crypto-js参数加密、解密问题
前言: 在很多项目中涉及到信息敏感问题,为防止http信息传输时参数被劫持进行二次传输的尴尬局面,最好使用前端加密参数请求,后端解密,返回数据时后端加密,前端解密.防止信息被盗取.目前主流的加密方式有 ...
最新文章
- 某单位招聘考试需要考核数学英语计算机,2010年10月自学考试电子商务网站设计原理试题...
- 对象----《你不知道的JS》
- OSI七层模型与TCP/IP四层模型
- React with Webpack - 2: css 处理
- vue-router和react-router嵌套路由layout配置方案的区别
- 1090. Highest Price in Supply Chain (25)
- opencv基础知识及其一些例子
- 组件化思维对于一个UI设计来说有多重要?
- 【异常 1】什么是异常
- html5 restore,HTML5 canvas save和restore方法讲解
- IDEA社区版配置Spring Boot开发
- 关于想写我与Java的故事,满脑子却都是与JavaCV纠缠不清的那段日子
- cmake(13):构建时设置预处理宏定义以及add_compile_definitions命令详解
- 设定软件使用期限,根据网络时间保护试用软件产品的方法
- MP3 ID3v1 ID3v2 APEv2 标准总结
- 学生用计算机怎么没音效,电脑有声音用播放器没有声音怎么处理啊???
- Python - 140种标准库、第三方库和外部工具整理
- 资源受限的移动边缘计算系统中计算卸载问题研究
- YOLOv5实战中国交通标志识别(TT100K数据集)
- 史上最美女程序员:手写代码把人类送上月球