1
busier 2023-11-04 18:21:03 +08:00
矛盾的需求!
拷贝本质就是全部读取+异地写入! 能读就能拷贝! |
2
billly 2023-11-04 18:27:12 +08:00
能不能通过用户访问目录控制来实现?
|
3
huage OP @busier 市面上有很多单机软件是放在 U 盘的,插入 U 盘,打开程序就能用,还能存储数据,他们是怎么做到不背复制的?
|
5
busier 2023-11-04 19:12:27 +08:00
人家 U 盘上是软件,是程序,U 盘相当于起到加密狗!程序运行要检测 U 盘存在!况且人家存储数据必须通过自身程序的逻辑进行加密或隐藏!并且不能被系统识别成普通文件,否则是文件他就能被复制!
你在 U 盘上放的只是单纯数据!想实现人家这些功能,怎么可能!!! 除非你自己写个专门数据存储软件,并且存储数据只能通过此软件进行,且保证存储数据的格式不能被系统识别成文件! |
7
SunsetShimmer 2023-11-04 19:18:27 +08:00
您可以自定义您的 MySQL 使其只能接受您自定义的加密格式的数据库文件,并且检测自己是否在特定硬件识别号码(类似的东西)的 USB 存储设备上运行。类似加密狗的原理。
但,如果用户要遍历读取数据库里面的每一个项目然后自己复制一份,无法解决,除非加读写频率限制。 |
9
Byzliu 2023-11-04 19:24:43 +08:00 via Android
这不是矛盾吗?😂
|
10
shyangs 2023-11-04 19:42:21 +08:00
沒救,可以直接遍歷讀取資料庫裡面的每一個項目然後自己複製一份,
你 MySQL 加讀寫頻率限制,客戶就會發現盜版比你司正版好用,盜版沒有讀寫頻率限制造成性能問題. |
11
Worldispow 2023-11-04 20:26:19 +08:00 via Android
u 盘有一个加密隐藏的分区,mysql 可以解密读取这个分区,但如何让 mysql 具有这个功能,建议你去改 mysql 源码。
|
12
test0x01 2023-11-04 22:56:31 +08:00 via Android
Windows 加密文件系统不是挺好的吗,本机指定用户透明访问。拿到别处打不开
|
13
yankebupt 2023-11-05 00:25:40 +08:00
最好再需求细化一下
比如库里什么地方 trigger 存储过程或者系统变量什么的地方要暗桩,或者多少万个存取就 shell 一个什么命令拿 key ,这个命令在 U 盘之外不起作用,拷走不能用之类 如果程序什么保护都没有数据量又不大的情况下,你 mysql 开个 navicat 都可以全表备份成 csv 的…… |
14
yankebupt 2023-11-05 00:41:56 +08:00
最小白的实现方式:
https://stackoverflow.com/questions/41951746/execute-shell-commands-from-mysql-stored-procedure 装个插件, 里面放你的加密狗(特制U盘认证过程,卖U盘狗给你的人给你的那个)认证程序,没有就删库 提示:不改程序数据库里直接调 cmd 安全风险极大,真出了什么事别找我 |
15
yankebupt 2023-11-05 00:43:29 +08:00
要是买不起 U 盘狗,拿量产工具制造点特征值也行,只防一般拷贝
|
16
cnbatch 2023-11-05 01:27:38 +08:00
商用加密软件?这实际上是“读取了也无法解密”吧,而不是无法复制到别处。
或者说,是“商用加密软件”模拟了一个文件夹,指定程序解密后后透明访问?这不就是某些 U 盘提供的私人加密区嘛。 只要文件是明摆着放在 OS 管理的文件系统,那么单纯的“允许读取、禁止复制”,你自己也知道这是做不到的。 如果非要做到,那这些文件显然只能交由独立程序独立管理,外界往里看只能看到经过封装的一堆 package ,无法见到实际文件本身。 都知道原理了,何必依靠所谓的“商密加密软件”,自家程序加一层类似功能不就得了。 |