1
renmu 34 天前 via Android
用户提供一个密钥,然后你用来加密
|
2
zsj1029 34 天前
商户不变且唯一的 id ,uuid 做 密钥,加密入库,数据查询后解密,返回前端显示
chatgpt 可以问问 |
3
tojike 34 天前
|
4
spectacle 34 天前
用户使用 pki rsa 证书绑定,公钥加密,私钥解密
|
5
bagel 34 天前
端到端加密呗,正确方式使用确实可以做到只有用户能看到明文数据,问题是你的这些所谓租户他们愿意牺牲便利吗?估计是些连强密码都不会设置的主。
|
6
JKOR 34 天前 via Android
服务内置公钥,用户保存私钥。
用户输入价格后公钥加密上传到数据库。 获取价格时,用户输入私钥本地解密显示。 这样只要程序没有后门,就只要用户能看到。 |
7
dapang1221 34 天前
伪需求,你直接告诉租户,里面的数据你们作为软件提供商是看不到的就行了,实际上你们(的运营)也确实看不到,这个概念很模糊。数据库里必须存明文,不然以后这个字段就废了,没法做任何计算和筛选
|
8
bagel 34 天前
@dapang1221 密文也可以计算,同态加密听说过没。总之技术方案有的是,问题在于 OP 的用户消受不起,连密码都不会设的主,你让 ta 管理端到端的密钥。
|
9
flmn 34 天前
如果提供商是恶意的,在加密入库之前,都是能拿到的呀。
除非客户自己整一个算法,类似国内对地理坐标的处理,然后录到你这里,明文保存即可,客户从界面上看到后,用自己的算法解出来。明文只在客户的电脑/脑子里出现…… 所以,如果系统能卖上价,考虑下私有化部署? |
10
dapang1221 34 天前 2
@bagel 啊?同态加密用在数据库字段?别谈密码学理论,给一个工程上的实现,现在 OP 需要一种加密方式,让这个字段加密存储,并且在常见的数据库,比如 mysql, postgresql, 哪怕 clickhouse 里面,实现简单的 where price > xxx 的查询。你来讲讲用密文怎么计算
|
11
GeekGao 33 天前
要看你们目前的基础架构方案,如果是一个租户一个数据库,那么整个库都可以做加密: 共享基建+完整的数据加密
|
12
GeekGao 33 天前
解密的时候在数据操作层进行。需要抽象出一套加密解密的体系的 DAO 。
|
13
v2luoqg 33 天前
字段加密后所有的 sql 语法都基本废了,程序设计的方式也要变了吧。
|
14
siweipancc 33 天前 via iPhone
那用数据库干嘛,让他们用文本存储数据。
|
15
Sunzehui 33 天前
让他们存数据的时候自己搞个公式存错的数据,查的时候他们自己按照自己公式倒推出来。不知道能不能行 😌
|
17
realpg 33 天前
@dapang1221 #10
where price > xxx 加密后的 还是可以写的 首先暂且将价格固定为分为单位的正整数 然后可以设定一个纯缩放算法,将原始数值 与一个限定范围的正整数系数作为变量 通过一定公式进行缩放算法 缩放算法 就是连续函数 f(x)在 x 为正整数时单调递增 且当 x 为正整数时 f(x)也是正整数 这个函数中的一个或者多个变量,由客户自行初始化时设置 存储到另一套数据库存储 同时,将商品基础信息描述,存储到另一套系统 实现数据库比照隔离 |
18
M003 33 天前 1
伪需求吧. 加密完还得解密返回客户端. 这加密和解密方法都知道了啊.
就告诉他们,我们是加密的. 公司运营和技术都是看不到的.有老板把自己关小黑屋写的加密程序. 无人可破解. 最好让他们把供应商也录入进来,这样数据就值钱了.同类商品横向对比. 公司也可以做个二道贩子了. @zsj1029 如果录入的金额 100 ,加完密成了 xxx 乱码 .那查询金额为 50~150 的货物,咋查.. |
19
sillydaddy 33 天前
@dapang1221 #10
同态加密可以做筛选啊,不一定非得用数据库自带的 select 语句完成吧。可以把所有数据 select 下来,然后后端去筛选。 全同态是可以做到所有的运算的。 OP 的需求还是不太清晰,对于加密后的进货价,还要不要进行运算?如果要运算,需要哪些运算? 如果仅仅是纯列表显示,那么前面几楼的方案最简单; 如果仅需要对进货价格进行带系数的加法运算(例如求总进价),那么半同态加密( PHE )就可以做到,速度也能满足; 如果需要对进货价格进行大小的比较,或者其他逻辑运算,可能要用到全同态加密( FHE ),速度会比正常运算慢百万倍,而且内存占用也超大。( 参考 /t/700927 ) |
20
sillydaddy 33 天前
@realpg #17
那如果是带系数求和( ax+by+cz ),这个缩放的方法就不行了,缩放必须是线性的才能满足求和之后可以反算回来,那也就失去了加密的意义了。 |
21
realpg 32 天前
|
22
realpg 32 天前
@sillydaddy #20
人家的需求就是 保密成本单价 让接触系统的人看不到 这是一个非常常见且合理的需求 我都经手过很多个这个需求的系统开发 比如牙科系统的牙冠成本价 医生都知道 医院都知道 但是他们完全不希望给他们开发系统的开发商和运维商知道 能不解密排序 能不解密比价 走索引 是基本要求 而你说这种 ax+by+c 场景,你确定是要写在 SQL 里面进行计算的吗?什么场景会有这种要求? 不都是取出来在程序侧计算,而程序侧是有解密的系数的 直接解开爱怎么加怎么加 |
23
sillydaddy 32 天前 via Android
@realpg 如果仅仅是需要排序或者索引,那你说的方法当然可行。
加总求和的操作,你怎么知道没有呢?求出某个商品在一段时间内的进货总价,不就是数量乘以价格,再加总吗? 当然你可以说这个计算可以解密后放在前端进行,如果是这样,那前面几楼的方案也可以啊,计算都放前端,数据库只是起一个储存数据的作用。 问题的根本就是,你不知道他有哪些计算的需求,你说的缩放,也仅仅能够起到排序这一个作用。 |
24
realpg 32 天前
@sillydaddy #23
你就杠吧 我都开发过多少套这种程序了 你不要虚空跟我杠你所谓得哪些需求需要前端 哪些不需要前端 假设一个系统内,有 100 万条商品信息,其中成本一项需要加密 显而易见,你不能每次操作都把 100 万条商品信息全取出来让程序去排 “按照成本排序并分页显示” “筛选成本在一定金额范围内的并分页显示” 这是任何一个商城类系统都雷打不动的 这个得实现只能带入 SQL 里面去 price BETWEEN 和 ORDER BY PRICE 否则你一次 100 万条都拿出来吗? 这也是 OP 得需求 请你给我举例一个你说的场景得刚性需求 如果你觉得这种不写入库内性能就够 咱来个 performance bench 实际测一下你的说法可行不可行 都是搞技术的,talk is cheap, show me your code 为了杠构造点东西骗骗外行也就罢了 别连自己都骗了 |
25
sillydaddy 32 天前 via Android
@realpg 你要是我下属,我一定立马开除了你。没有任何根据的在那儿臆测。
|
26
sillydaddy 32 天前 via Android
@realpg 需求不是你说了算,需求在 OP 那儿。你怎么知道商户有 100 万数据?你怎么知道全部 select 出来性能不够?你怎么知道没有加总的需求?就你这种不看需求就开发的,第一个开的就是你。
|
27
realpg 32 天前
|
28
sillydaddy 32 天前
@realpg
你问我凭什么有勇气开除你,不凭别的,凭常识就够了。 我一个月工资不高,也就 2 万,没你牛逼。你说我没经验,确实我连一个 saas 系统也没开发过。你开发的不是多吗,这么着,你从你做的那么多项目里面,找出来一个需要**按成本价**排序 100 万条数据的,我当场赔你 2 万。你要是找不出来,倒赔给我 2 万! 真是吹牛逼不上税,还 100 万。 |
29
realpg 32 天前
@sillydaddy #28
我现在做的就是啊 省医保 里面药品 器械 操作 加上品牌 加上特殊标志 加上商品名 单价成本价什么都得排序 目前已经快上五百万条目了 因为里面还有各种加收项目 加收 1~n 还有各种限抢救 限病种不同分类 而且操蛋的是 这不是国际通用商业数据库 必须是信创目录的 性能渣的一批 |
30
realpg 32 天前
|
31
sillydaddy 32 天前
@realpg 别跟我扯哪些有的没的。我就问你敢不敢赌。
你那 500 万条数据需要针对成本价排序的话,你把相应的需求发给我,我这就赔你 2 万。不同类型的器械有什么必要针对成本价排序,你会把苹果和梨子的价格排序吗?所以说识破你的鬼话不需要什么专业知识,有常识就足够了。 |
32
YsHaNg 31 天前 via iPhone
|
33
Dlin 31 天前
评论区还能吃瓜
|
34
xuanbg 31 天前
我的疑问是:你一个库存,为啥要存成本价?如果是记账类的如管家婆,不可能对某个字段做加密处理。不能做条件查询不说,也完全没必要啊。你真要保密,多花点钱私有化部署就完了,或者自己招人开发也行。
总之,这种客户就不是 SAAS 厂商的菜。找准自己的定位很重要,别为这些乱七八糟的特殊需求乱了自己的阵脚。 |
35
xiaoheicat 31 天前 via iPhone
做个 BFF 加密中间层啊,前端不变,后端不变。BFF 响应时做匿名化不就好了,如果想要当前账户能看,做个超时
|
36
Desdemor 31 天前
同意楼上 直接私有化部署算了 费那劲
|
37
sbldehanhan 31 天前
@tojike #3 我看刑。
|