Csv格式文件身份证号码没有达到脱敏的效果

@402357137

让我再试着解释一下。 “逗号分隔值”格式是一个简单的电子表格,其中每一行都应具有相同数量的项目。如果没有数据,可以使用两个逗号等。请看下面的文字(假设是CSV文件),“‘Number 3’, ‘Number 4,’ Number 5” 如您所见,第二行只有一个逗号,而上面的行有两个逗号。因此,第二行及其中的更改使该文件的结构被破坏。同时,它是一个有效的纯文本文件。如果您想允许用户更改文档的格式和结构,则无需将其作为电子表格打开 - 它会消耗更多资源并降低性能(与纯文本相比)。在这种情况下,更好的方法是将其作为纯文本使用。所以你有两个选择:使用纯文本或使用电子表格。在第一种情况下,您必须对文档的完整性和格式负全部责任,在第二种情况下,您必须使用单元格值和类型。

@Atir_Tahir

我们考虑过 将csv格式 按照 纯文本方式进行脱敏处理后 在进行还原。
因为 csv有一定的规则格式, 以纯文本脱敏(假设脱敏后含有 逗号, 双引号, 撇号 等一些在csv中 本身就有一定意义的字符) 在还原为csv格式 进行展示 会破坏 原有的格式。 在这种情况下我们不清楚该如何处理。

举例: 将abc 替换成 ab,cc 以纯文本脱敏后以csv展示将变成了2列

针对第二种情况, 上面有提到, 我们无法预设用户的行为, office或者wps 也没有限制用户输入的方式, 对于 用户 没有按照 第一列 是字符串, 第二列 是整形 这样的输入,我们如何处理?

@402357137

刚刚用我的 MS Excel 进行了测试 - 它使用“;”默认情况下,而不是“,”。示例文件是:
aaa;bbb;ccc;ddd
如果我在编辑器中更改单元格“c;c;c”,它将保存为
aaa;bbb;“c;c;c”;ddd
并且包含分隔符的单元格用引号括起来,MS Excel 更改用户的文件以保持格式与用户的输入保持一致。
在本例中,如果在纯文本模式下使用 GD.Redaction,则生成的文件仍然是有效的纯文本,没有任何损坏。如果在电子表格模式下使用,它也将保持有效并且控制字符将被换行。Office 在用户输入中添加撇号、引号等。
如果我打开一个包含
aaa,bbb,ccc,ddd
使用 Java 的 GD.Redaction 并将“ccc”替换为“c,c,c”,它被保存为
aaa,bbb,“c,c,c”,ddd。
因此,如果您在电子表格模式下使用 GroupDocs.Redaction,生成的文件将保持有效的电子表格并且其格式不会被破坏。
至于撇号,大数的科学记数法 - 还有其他情况需要添加撇号以防止数据被自动解释。请看这篇文章.

作为对此请求的简要总结。使用纯文本选项,您无需担心大数字、公式等,但您必须自己处理格式完整性。使用电子表格方法 GroupDocs.Redaction 将为您处理完整性,但您必须考虑此类影响,例如数字的科学记数法,并在需要防止它时处理它。

@Atir_Tahir
在纯文本模式下, 我如何 处理格式的完整性。 例如: 将数字12325435435 替换成 1234,32432423 就破坏了完整性
即使通过双引号处理 “12325435435” 替换成 23“34,32”2345 替换后的结果 变成 “23“34,32”2345” 也破坏了完整性 (转义符在office中 识别不了)

另外:我使用MS Excel 2013 和 wps 试了下 , 都是以 逗号 进行分割, 没有通过分号区分的。 请问您使用的是 MS Excel 那个版本, 我可以进一步验证下。
image.png (23.4 KB)

您共享的屏幕截图,它以分号而不是逗号显示备用。让我知道我是否错了。

@Atir_Tahir

我使用分号; 进行测试, 结果显示 分号并不是 作为execl 分隔符。 最终结果显示 使用分号; 隔开的内容 都显示在一个 单元格中。

@402357137

我们正在使用适用于 Windows 的 MS Excel 2013,有许多支持的 CSV 格式具有不同的分隔符,包括逗号。您必须双引号两次才能转义单个双引号,在您的示例中它将是 "23""34,32"“2345”

@402357137

RDACTIONJAVA-158 和 REDACTIONJAVA-159 在 API 版本 22.10 中得到解决。