spwatermark
水印
### 1.设置水印
curl -i -k -H "Content-type: application/json" -X POST -d '{"tabname":"dbname:t_order","keyid":100,"watermark":{"content":"","mobile":""}}'
http://localhost:8030/SetWatermark
tabname:表名,注意只有在授权了加密的字段上,才可以设置水印,脱敏...
如果授权时的表名按dbname:tabname填,这里要一致
所有要求所有接口中涉及表名的参数都需要按照dbname:tabname格式填,虽然单填tabname也可以兼容(强烈不推荐,调试错误很困难)
keyid:kms用户id
watermark:需要添加的水印,填字段名即可,值不用填,服务端随机生成
返回:
{
code:0,
。。。
}
1.设置水印
post: /SetWatermark
{"tabname":"dbname:t_order",
"watermarks":[{
"fieldname":"mobile",
"watermark":"2f453c5d",
"marktype":"AddSuffix(#32)"
},
{
"fieldname":"content",
"watermark":"2f453c5d",
"marktype":"AddSuffix(#32)"
}
]}
fieldname:要添加水印的字段名,表对应的字段被初始化以后即可设置,与用户无关
watermark:该字段要设置的水印编码,用二进制表示,
比如水印编码是32位int,hex(BigEndian(int32))=如:2f453c5d,64位int,hex(BigEndian(int64))=如:2f453c5d2f453c5d,
这样就能知道此水印的长度
如果设置的是空字符串"",则proxy输出不添加水印
marktype:添加水印方式
暂时固定用AddSuffix(#32),参数#32表示内容末尾添加空格
返回成功:{code:0}
返回错误:{code:100,message:"..."}
2.删除水印
//清除表dbname:t_order 所有字段水印设置
curl http://localhost:8030/DelWatermark/dbname:t_order
3.删除全部水印
curl http://localhost:8030/DelWatermark
4.获取水印
curl get http://localhost:8030/ListWatermark/dbname:t_order/mobile
返回对字段mobile设置了水印的所有用户
{
tabname:dbname:t_order,
field:mobile,
watermarks:[
{
keyid:101,
watermark:111sdfjskjfsdkfss
},
{
keyid:107,
watermark:11assssasasasasa
}]
}
LS 水印
curl get http://localhost:8030/ListWatermark/dbname:t_order
返回表dbname:tabname中所有设置水印的字段
返回成功:
{
"tabname":"dbname:tabname",
"watermarks":[
{
"fieldname":"mobile",
"watermark":"2f453c5d",
"marktype":"AddSuffix(#32)"
},
{
"fieldname":"content",
"watermark":"2f453c5d",
"marktype":"AddSuffix(#32)"
}
]
返回错误:
{
code:100,
message:"..."
}
5.水印码进行rs编码
curl get http://localhost:8030/RsEncode/a52378d6
a52378d6水印原始编码,对应设置接口中的 "watermark":如"2f453c5d",
返回:rs编码字符串
{
"code":0,
"data":"010a0502000800050e05070f06080c00020307080b0f03080103070406070d0c030d0601070b0209020102040c010b0d"
}
6.水印解码
curl get http://localhost:8030/RsDecode/010a0502000800050e05070f06080c00020307080b0f03080103070406070d0c030d0601070b0209020102040c010b0d
010a050200...... 是溯源后的结果,比如48个最大(0-15)的数,用二进制表示成字符串
返回水印原始编码
{
"code":0,
"data":"a52378d6"
}
将溯源后的结果解码为SetWatermark接口中对应的 "watermark"如"2f453c5d"
可以匹配到属于那个用户
7.写入word水印
curl post http://localhost:8030/WriteDOCMark/010a0502000800050e05070f06080c00020307080b0f03080103070406070d0c030d0601070b0209020102040c010b0d
将需要写入水印的word文件内容提交到上面这个URL
010a050200...... 是水印编码经过rs编码后的字符串
返回加完水印后的内容字节流
注意 因为加水印时间比较长所有超时时间设置长点,3分钟以上.
8.读取word水印
curl post http://localhost:8030/ReadDOCMark/48
将需要提取水印的word文件内容提交到上面这个URL
48表示水印编码长度.int32填48 int64填96
返回
{
"code":0,
"markcode":"010a0502000800050e05070f06080c00020307080b0f03080103070406070d0c030d0601070b0209020102040c010b0d"
}
markcode 需要进行rs解码才能得到水印编码