我有一个接收Unicode数据的API,但我只需要在其中存储ASCII。我想压缩&混淆(或加密)将以Unicode格式保存的字符串值。
我希望压缩这个架构数据,或者从窥探眼睛加密它。我认为两者都做得不好。
考虑到我想将源数据限制为有效的可打印ASCII;如何将原始字符串值“压缩”为较小,混淆或两者兼有的值?
以下是我的想法,虽然你可能有更好的方法:
(请注意,实用程序将用于强制执行约束,即“最终”Unicode名称不得包含以下字符'/','\','#','?'或'%')
背景
Microsoft Azure Table具有一个API,可接受存储或属性名称的Unicode数据。这是一个无架构的数据库(因此可以临时创建列),因此架构存储在每行中。缺点是这个架构数据多次存储在磁盘上,并且它也通过线路传输,非常冗余,在XML blob中。
此外,我正在使用dynamically encrypts/decrypts Azure Table Data,的实用程序,但架构未加密。我想以某种方式掩盖或混淆这个标题信息。
答案 0 :(得分:0)
这些只是一些想法。
第3步实际上不是直接的(只是将数据压缩和/或加密成不同的字节)?对于7位ASCII,您还可以在压缩和/或加密之前,通过打包位来存储数据,使它们适合更少的字节。
如果您可以在步骤5中使用UTF-32,UTF-8等,则可以访问Unicode标准中的所有字符,最多为0x10FFFD,但有一些例外情况;例如,某些代码点在Unicode标准中是非字符的,例如0xFFFF,而其他代码点是无效字符,例如0xD800。