【问题标题】:obfuscate font file with IDPF standard in c#在 C# 中使用 IDPF 标准混淆字体文件
【发布时间】:2025-11-27 21:45:01
【问题描述】:

我必须使用 IDPF 算法对字体文件进行模糊处理和去模糊处理 - .otf 和 .ttf 文件。我有这段代码来混淆java中的文件

public void serialize(OutputStream out) throws IOException {
            try {
                    byte[] buffer = new byte[4096];
                    int len;
                    InputStream in = source.getInputStream();
                    boolean first = true;
                    while ((len = in.read(buffer)) > 0) {
                            if( first && mask != null ) {
                                    first = false;
                                    for( int i = 0 ; i < 1040 ; i++ ) {
                                            buffer[i] = (byte)(buffer[i] ^ mask[i%mask.length]);
                                    }
                            }
                            out.write(buffer, 0, len);
                    }
            } catch (IOException e) {
                    e.printStackTrace();
            }
            out.close();
    }

是否对加密密钥有任何要求,因为在此代码中未使用加密密钥。请指导我如何开始

【问题讨论】:

    标签: c# c#-4.0 c#-3.0 c#-2.0


    【解决方案1】:

    它不需要加密密钥,因为它不是加密文件,而是混淆它。如果你想加密一个文件,然后再解密它,.net 框架中有很多内置类用于此目的,它们采用加密密钥。

    看看this命名空间。它包含许多类,允许您使用不同的算法来加密和解密数据。

    此外,永远不要编写自己的加密代码,因为它几乎肯定会被破解(除非你是天才,非常认真,并且在接下来的一两年内没有其他更重要的事情要做)。

    【讨论】: