您好:
在测试中 如果出现脱敏的关键字 互相包含, 脱敏是按照什么顺序脱敏的?
test_num.pdf (31.5 KB)
在样本 ,同时对关键字:
202212300000000
2212300000
3000000
进行脱敏。
测试结果 是对3000000进行屏蔽。
image.png (52.8 KB)
image.png (33.0 KB)
在另一个测试样本中, 对关键字:
1234 5678 90
5678 9098
5678
进行脱敏测试。
测试结果 对 1234 5678 90 进行了屏蔽
image.png (36.4 KB)
这个测试顺序是按照什么顺序, 在实际业务中 我期望能最大长度进行屏蔽,所以在脱敏的时候我按照长度进行排序,字符串最长的屏蔽串放到最前面, 但脱敏结果不受排序控制。
代码:
OCR 返回结果处理
在 recognize(InputStream imageStream) 方法中
// 遍历排序后的列表
for (JSONObject coordinate : jsonList) {
String key = coordinate.getString(“key”);
JSONArray boxes = coordinate.getJSONArray(“value”);
ArrayList fragments = new ArrayList<>();
for (int i = 0; i < boxes.length(); i++) {
JSONObject box = boxes.getJSONObject(i);
Rectangle rect = new Rectangle(box.getInt(“left”), box.getInt(“top”), box.getInt(“width”), box.getInt(“height”));
fragments.add(new TextFragment(key, rect));
}
lines.add(new TextLine(fragments.toArray(new TextFragment[0])));
}
return new RecognizedImage(lines.toArray(new TextLine[0]));
脱敏调用过程:
RedactorSettings settings = new RedactorSettings(connector);
Redactor redactor = new Redactor(redactionOptions.getSourcePath(), new LoadOptions(), settings); //new Redactor(redactionOptions.getSourcePath());
List redactions = getRedactions(redactionOptions);
RedactorChangeLog redactorChangeLog = redactor.apply(redactions.toArray(new Redaction[]{}));