V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huage
V2EX  ›  Windows

有没有什么办法可以限制 U 盘或者移动硬盘文件的拷贝

  •  1
     
  •   huage · 175 天前 · 1749 次点击
    这是一个创建于 175 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求:U 盘或者移动硬盘里有一个 MySQL 数据库,要能够读写里面的数据或者文件,但是不能把 MySQL 完全拷贝到其他地方

    请问这种需求有什么办法可以解决吗?
    第 1 条附言  ·  175 天前
    购买商业加密软件可以解决,v2ex 上还是写代码的多
    第 2 条附言  ·  174 天前
    商业加密软件,就是要买一套程序来把我的软件套进去,目前了解到能够实现,但是缺点是读写太慢。
    17 条回复    2023-11-05 11:14:11 +08:00
    busier
        1
    busier  
       175 天前
    矛盾的需求!

    拷贝本质就是全部读取+异地写入!

    能读就能拷贝!
    billly
        2
    billly  
       175 天前
    能不能通过用户访问目录控制来实现?
    huage
        3
    huage  
    OP
       175 天前
    @busier 市面上有很多单机软件是放在 U 盘的,插入 U 盘,打开程序就能用,还能存储数据,他们是怎么做到不背复制的?
    huage
        4
    huage  
    OP
       175 天前
    @billly 直接卖 U 盘给客户,控制不了
    busier
        5
    busier  
       175 天前
    人家 U 盘上是软件,是程序,U 盘相当于起到加密狗!程序运行要检测 U 盘存在!况且人家存储数据必须通过自身程序的逻辑进行加密或隐藏!并且不能被系统识别成普通文件,否则是文件他就能被复制!

    你在 U 盘上放的只是单纯数据!想实现人家这些功能,怎么可能!!!

    除非你自己写个专门数据存储软件,并且存储数据只能通过此软件进行,且保证存储数据的格式不能被系统识别成文件!
    huage
        6
    huage  
    OP
       175 天前
    @busier MySQL 也是程序,也是软件!!!
    SunsetShimmer
        7
    SunsetShimmer  
       175 天前
    您可以自定义您的 MySQL 使其只能接受您自定义的加密格式的数据库文件,并且检测自己是否在特定硬件识别号码(类似的东西)的 USB 存储设备上运行。类似加密狗的原理。

    但,如果用户要遍历读取数据库里面的每一个项目然后自己复制一份,无法解决,除非加读写频率限制。
    Chad0000
        8
    Chad0000  
       175 天前 via iPhone
    @huage #6
    OP 不懂虚心求教么?三个感叹号显得自己知识丰富么?

    加密狗了解一下先。
    Byzliu
        9
    Byzliu  
       175 天前 via Android
    这不是矛盾吗?😂
    shyangs
        10
    shyangs  
       175 天前
    沒救,可以直接遍歷讀取資料庫裡面的每一個項目然後自己複製一份,

    你 MySQL 加讀寫頻率限制,客戶就會發現盜版比你司正版好用,盜版沒有讀寫頻率限制造成性能問題.
    Worldispow
        11
    Worldispow  
       175 天前 via Android
    u 盘有一个加密隐藏的分区,mysql 可以解密读取这个分区,但如何让 mysql 具有这个功能,建议你去改 mysql 源码。
    test0x01
        12
    test0x01  
       175 天前 via Android
    Windows 加密文件系统不是挺好的吗,本机指定用户透明访问。拿到别处打不开
    yankebupt
        13
    yankebupt  
       175 天前
    最好再需求细化一下
    比如库里什么地方 trigger 存储过程或者系统变量什么的地方要暗桩,或者多少万个存取就 shell 一个什么命令拿 key ,这个命令在 U 盘之外不起作用,拷走不能用之类
    如果程序什么保护都没有数据量又不大的情况下,你 mysql 开个 navicat 都可以全表备份成 csv 的……
    yankebupt
        14
    yankebupt  
       175 天前
    最小白的实现方式:
    https://stackoverflow.com/questions/41951746/execute-shell-commands-from-mysql-stored-procedure
    装个插件,
    里面放你的加密狗(特制U盘认证过程,卖U盘狗给你的人给你的那个)认证程序,没有就删库
    提示:不改程序数据库里直接调 cmd 安全风险极大,真出了什么事别找我
    yankebupt
        15
    yankebupt  
       175 天前
    要是买不起 U 盘狗,拿量产工具制造点特征值也行,只防一般拷贝
    cnbatch
        16
    cnbatch  
       175 天前
    商用加密软件?这实际上是“读取了也无法解密”吧,而不是无法复制到别处。
    或者说,是“商用加密软件”模拟了一个文件夹,指定程序解密后后透明访问?这不就是某些 U 盘提供的私人加密区嘛。

    只要文件是明摆着放在 OS 管理的文件系统,那么单纯的“允许读取、禁止复制”,你自己也知道这是做不到的。
    如果非要做到,那这些文件显然只能交由独立程序独立管理,外界往里看只能看到经过封装的一堆 package ,无法见到实际文件本身。
    都知道原理了,何必依靠所谓的“商密加密软件”,自家程序加一层类似功能不就得了。
    huage
        17
    huage  
    OP
       174 天前
    @cnbatch 因为我自己没有能力开发搞不定这个程序,我只是有产品思路,也有客户资源,客户已经提了需求,所以想把它商业化。赚不到大钱,但是小众的东西,利润率比较高,ROI 划得来。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   867 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:10 · PVG 05:10 · LAX 14:10 · JFK 17:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.