精华内容
下载资源
问答
  • Windows中OpenSSL源码的编译1.1 Ingredients1.2 开始编译采用OpenSSL对软件进行加密服务端上客户端加密效果1. Windows中OpenSSL源码的编译不说Linux中的编译1.1 Ingredientsopenssl-3.0源码perl(提前安装一下)dmake...

    目录

    1. Windows中OpenSSL源码的编译1.1 Ingredients1.2 开始编译采用OpenSSL对软件进行加密服务端上客户端加密效果

    1. Windows中OpenSSL源码的编译

    不说Linux中的编译

    1.1 Ingredients

    openssl-3.0源码

    perl(提前安装一下)

    dmake(编译过程需要,可以用perl的命令下载,但是下不动,自己从网上找一个 dmake.exe下载下来拷贝过去就行)

    nasm

    VS2017

    这几个我都打包好了(除了VS2017,VS2017在之前的推送中放过),放在以下的百度云中:

    链接:https://pan.baidu.com/s/1nZQYhR9XoxP8i8zpWimsKA

    提取码:Hong

    dmake.exe拷贝到perl目录/site/bin中去。
    nasm.exe 所在的路径要添加到环境变量Path中

    98187e95b0c58d86eb46450b60775fac.png
    cdbc15880e7726541ef297fbc9776363.png

    1.2 开始编译

    • 安装 perl 记得勾选 添加到路径

    • 把nasm.exe所在路径添加到环境变量中

    • 把 dmake.exe 拷贝到 perl路径/site/bin 中去

      2704b1e949297d378b2014b77bf69d5a.png

    • 打开VS的这个命令行(要右键,以管理员身份运行)

      69f3b279f72f4ff8e3a0000c6eda52ef.png

    输入:

    cd 你的OpenSSL源码路径
    perl Configure VC-WINA --prefix 输出目录

    然后

    nmake

    中间得等一会!

    nmake install

    等个好一会就好了。

    我们需要从源码目录的 ms目录下 把 applink.c 文件拷贝到输出目录的 include 目录中。在写程序的时候要把这个applink.c 包含到使用OpenSSL库函数的Cpp文件中(不要放在头文件中包含,直接在main.cpp中包含进来就行)

    编译好后:

    78fc4de0384ac7e0a783a9a957dca44f.png

    采用OpenSSL对软件进行加密

    这部分不分享源码了,源码太太太多了,也不方便整理,简单说说思路吧。

    其实,思路还是和上次的那篇推送一样,不过,上次是用Python做的,这回是用C++做。

    服务端上

    • 直接采用编译出来的OpenSSL的可执行程序来生成公私密钥对,或者采用OpenSSL的函数来生成也行。密钥对生成一次就够了。

    • 利用私钥,对客户发送过来的计算机硬件指纹进行签名,把签名写入到文件中,然后发送给客户。

    但是,OpenSSL生成签名的函数:生成的是一个二进制的签名数据,还有这个数据的大小。我们需要对这个二进制数据进行编码,编码成一个字符串。OpenSSL有Base64的编码函数,我们可以拿来用。

    我们可以用XML来保存编码后的字符串,以及编码后的数据大小。把这个XML文件保存成license.lic,这样就是一个许可证文件了:

    ceb3adcb1846c310dbd0b630ac0e75a1.png

    XML文件中的内容

    fc1288f26aa947a4e538b0ddcbb2d79c.png

    XML文件就是被设计用来传输数据的,Qt有XML文件读写的函数,后期有空的话我也会写相关的推送。

    我们把这个license.lic发给客户,客户端程序解析出其中的编码后的签名,然后对其解码,解码成二进制数据,再传给OpenSSL的验证签名的函数。

    客户端

    • 首先获取本机的硬件指纹

    • 读取从服务端发过来的license.lic文件,解析出其中的签名数据,用相同的方式对其进行解码,解码回二进制值。

    • 利用公钥对签名进行验证

    • 如果验证通过,才进入界面,不然直接退出

    在利用公钥对签名验证这有点小问题:我们不能把公钥直接暴露给客户,如果客户用他自己的公钥来替换我的公钥那么就gg了!所以我们应该事先把公钥写入到程序中!但是OpenSSL的函数貌似只能从文件中读取公钥,所以这就麻烦了!下面我提供两种解决办法:

    法1:使用Qt的情况下

    我们可以把公钥文件放到资源文件里面,一块编译到程序中!但是这存在一个问题,Qt资源文件中的文件只能给Qt的库函数来读取标准C/C++中的函数是读不到Qt资源文件中的东西的!

    • 我们可以用QTemporaryDir来创建一个临时文件夹

    • 然后用QFile来读取资源文件中的公钥,把其中的字符串读出来

    • 在上面创建的临时文件夹中用QFile来创建一个文件,把公钥中的字符串写入到这个临时公钥文件里去。

    • 最后用OpenSSL的函数来读取这个临时文件夹中的临时的公钥文件。

    • QTemporaryDir对象删除时,临时文件夹也就删除了

    这样就不用担心公钥泄露出去了!

    法2:不用Qt的情况下

    要不用Qt的话,就只能把公钥文件中的内容复制出来,放到一个字符串中,剩下的步骤还是和上面类似。

    只不过这样就稍微麻烦点,万一我们换了密钥对的话,还得去改代码,要是用Qt就不用改代码了,直接把文件拷贝过去,重新编译下就行!

    加密效果

    没有许可证的情况下:

    6631e0457355fd32d095e23c90481fec.png

    点击ok

    8b750f6b51eddd9cd97e98b5d327ca7d.png

    必须要找我要许可证才行。

    验证一下是否真的一台电脑只能用一个独一无二的许可证

    我找我师弟帮我试了一下

    开始时,发给他的是我自己电脑的许可证,他那用不了,如下图:

    69e0dc333129fc8792f2639d26a7b431.png

    后面他把他的计算机硬件指纹发给我,我生成了一个许可证发给他然后才能用!

    dd471f73c7a0ad966c9c86da7d7202dc.png


    最后打开是这样

    初始化界面

    7dfc85e92a707422d4722365813c3797.png

    其他工作界面等

    8cadef5b4e0894e9b5132df7db1f6de4.png

    494310acd1a942cddecfbc07d297dc37.png

    整个程序写了两周,乱七八糟的对一块,快上万行C++代码了(有用的估计顶多5000行不到吧),也算是对这断断续续学了一个多学期的C++/Qt有个大的复习了aa5ca87c19a8c8a7908fc0d04095c07c.png


    cc71880b4d49fd0ca37e33a82cd5eef8.png

    43fe3d3a2d4844389cc3c2f3ff30db9f.png43fe3d3a2d4844389cc3c2f3ff30db9f.png43fe3d3a2d4844389cc3c2f3ff30db9f.png

    展开全文
  • 之前提到过,如何隐藏加密文件夹没看过可以去看我的第一篇文章。有时候,我们整个硬盘可以存放了自己个人的资料,借别人时不想让别人看到,有时候,磁盘分区比较多,短时间不用,想要隐藏起来。我们无需使用软件,...

    之前提到过,如何隐藏加密文件夹没看过可以去看我的第一篇文章。

    有时候,我们整个硬盘可以存放了自己个人的资料,借给别人时不想让别人看到,有时候,磁盘分区比较多,短时间不用,想要隐藏起来。我们无需使用软件,可以借助系统自身工具对整个硬盘分区进行隐藏,有以下两种方法。

    方法一: 注册表修改

    Win+R输入“regedit”,回车运行,进入注册表编辑器

    依次打开“HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionPolicesExplorer”

    在右边窗体空白处单击右键,选“新建二进制值”,重命名为“NoDrives”。

    9712d0ba4266cbfb0c1a44e489b531bf.png

    双击该键值,输入00 00 00 00(不带空格,直接输入)

    a5bfbfc0a57261da2db1ff6ab063da41.png

    其中第一组“00”代表A-H盘,第二组“00”代表I-P盘,三、四组依此类推。

    (00 00 00 00 表示全部分区都显示出来,无隐藏分区)。

    将第一组“00”改为01可隐藏A盘,改为02可隐藏B盘,改为04可隐藏C盘,改为08可隐藏D盘,改为10隐藏E盘,改为20可隐藏F盘,改为40可隐藏G盘,改为80可隐藏H盘(规律为1,2,4,8)。

    例如,想隐藏的是D盘,将键值改为“08 00 00 00”即可。

    若是隐藏两个及以上分区可以把两组及几组数字相加。

    修改完毕后,不论是隐藏还是恢复显示都是立即生效。直接回“我的电脑”中,刷新后就看不到该盘了,如果不能立即生效,重启电脑生效。

    想要使用该硬盘时,可以在我的电脑地址栏中输入D:,即可打开D盘。,想要显示D盘时,将键值重新改为默认值“00 00 00 00”即可。

    5232063d026b882f4b9d0d9dfd2ac094.png

    方法二: 磁盘管理工具中修改

    (win 7)右键点击桌面上或者开始菜单中的“计算机”图标,然后弹出菜单中的“管理”,则打开计算机管理窗口(如下图),即可看到左侧菜单的“磁盘管理”项,打开后,即可看到硬盘分区。

    (win 10) ,右键点击开始按钮,即可看到磁盘管理,进入即可

    6336e13ff8f0feeefeb665266fb3bf37.png

    例如隐藏D盘,右击待该分区,选中“更改驱动器号和路径

    c860374bdab451b8732b170d13e62a11.png

    在弹出窗口中选中“删除”,然后弹出警告窗口

    c4da2f011e39595ae2ebd2ab964b4be7.png

    核实之后,点击“是”即可。重启电脑即生效

    61259efdd484161d07ecf81edd20eb26.png

    此方法删除驱动器号,可以实现永不显示,想要再次显示,我们可以进入磁盘管理,找到没有盘符分区,如下图

    05d76b5c69c2792c9f433764a2955c31.png

    右键更改驱动器号和路径

    选择添加

    881311cfb4e799c6957209f0d9023e70.png

    系统会自动分配盘符,选择D然后 确定就好了

    7198d65b6cc7b70bbfd71d109da7a108.png

    (注意,安装软件的硬盘不可删除,删除之后,软件将不能工作,再次恢复时,必须恢复为删除之前的盘符后才能正常使用软件,例如安装软件的硬盘为F盘,右键更改驱动器号和路径,添加时必须也为F。)

    展开全文
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    115 <br>0192 如何获取“我的文档”系统文件夹路径 115 <br>0193 如何获取应用程序当前执行的路径 116 <br>0194 如何获取当前操作系统的信息 116 <br>0195 如何实现基本数据类型随意转换 116...
  • 生成密钥并在场中的第一台服务器上启用 IMA 加密 155 将密钥加载到场中的后续服务器 156 将密钥存储到共享位置 156 将密钥存储到网络位置 156 更改场 157 其他 IMA 加密功能 157 备份密钥 157 检索丢失的密钥 157 ...
  • 小编的确一直都想把这方面的命令做个总结,这次辛苦老范我们整理了这份实用的秘笈。  Bootcfg  bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。  含有下列参数的 bootcfg 命令仅在...
  • 主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合...文件夹基本操作、文件流操作、加密、解密及解压缩文件、C#与Word互操作、高效应用Excel、基本图形绘制、图像处理技术、常用图表应用、动画...
  • 书名:《C#开发实战1200例(第I卷)》(清华大学出版社.王小科.王军) PDF格式扫描版,全书分为6篇25章,共888页。2011年1月出版。 注:原电子版图书无书签,为阅读方便...实例295 使用FolderBrowserDialog组件选择文件夹 ...
  • 书名:《C#开发实战1200例(第I卷)》(清华大学出版社.王小科.王军) PDF格式扫描版,全书分为6篇25章,共888页。2011年1月出版。 注:原电子版图书无书签,为阅读方便...实例295 使用FolderBrowserDialog组件选择文件夹 ...
  • 书名:《C#开发实战1200例(第I卷)》(清华大学出版社.王小科.王军) PDF格式扫描版,全书分为6篇25章,共888页。2011年1月出版。 注:原电子版图书无书签,为阅读方便...实例295 使用FolderBrowserDialog组件选择文件夹 ...
  • 主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合...文件夹基本操作、文件流操作、加密、解密及解压缩文件、C#与Word互操作、高效应用Excel、基本图形绘制、图像处理技术、常用图表应用、动画...
  • 实例234 整个窗体铺满图片 8.2 主界面应用实例 实例235 类似超级兔子的程序界面 实例236 类似瑞星的导航主界面 实例237 类似Windows XP的程序界面 实例238 Outlook式主界面 实例239 可以用鼠标切分的窗体 ...
  • 无线路由破解软件

    2012-07-10 22:52:05
    如果你不知道何谓wep、wpa,请百度一下,会你一个专业的回答。最简单的解释就是无线信号的密码,后者比前者加密程度高。  2、本文力求以傻瓜式、菜鸟式的方法解决问题,适合像我一样不懂的菜鸟。  下面...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,IFApplication是应用程序对象基类。 FlashPlayer播放器4.0的VC++源代码 FreeBird2011最初版(模仿飞鸽,可...
  • 下载本仓库,然后拷贝aliyun_mqtt_app文件夹到SDK主目录,用法类似于ESP8266_NONOS_SDK/examples里面的工程; 在ESP8266 IDE里导入整个SDK,如果不熟悉该环境,参考这里; 使用SDKv3.0.0还需要修改该SDK的顶层...
  • 023《FireShot》一键滚动截屏整个网页 022《扩展管理器》管理你的Chrome扩展 021《哔哩哔哩助手》助你快速成为B站老司机 020《Boxel Rebound》“嗨到中毒”的弹跳小方块(附自制赛道分享方法) 019《MEGA》...
  • 普遍使用的 Android APP 技术架构,往往是在一个界面中存在大量的业务逻辑,而业务逻辑中充斥着各种网络请求、数据操作等行为,整个项目中也没有模块的概念,只有简单的以业务逻辑划分的文件夹,并且业务之间也是...
  • .htaccess

    2007-07-19 01:51:18
    If you only specify 1 or 2 of the groups of numbers, you will block a whole range. 这里的000.000.000.000是被封禁的IP地址,如果你只指明了其中的几个,则可以封禁整个网段的地址。如你输入210.10.56.,则...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。 -t vfstype:显示被加载文件系统的类型。 -n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件...

空空如也

空空如也

1 2
收藏数 23
精华内容 9
关键字:

如何给整个文件夹加密