Java 使用加密数据创建自定义文件格式

Java 使用加密数据创建自定义文件格式,java,file,encryption,file-extension,Java,File,Encryption,File Extension,我正在尝试为我正在开发的软件创建一个新的文件扩展名,我只想创建一个文本文件(用于存储数据),该文件将被加密为字节或类似的内容,因此如果用户试图编辑它,它将无法编辑 我需要任何库来执行这样的操作吗 我能保证没有人能读到吗 是否有其他方法在系统上存储数据?(仅软件可读) 像这样的东西可能会有帮助。这是一个将字符串加密为加密格式的示例。如果您能够以字符串格式获取文件中所需的内容,那么可以按照链接中显示的方式对其进行加密,然后将其输出到您的文件中。这样,当文件被打开时,他们只会有加密的信息(或者对未经训

我正在尝试为我正在开发的软件创建一个新的文件扩展名,我只想创建一个文本文件(用于存储数据),该文件将被加密为字节或类似的内容,因此如果用户试图编辑它,它将无法编辑

  • 我需要任何库来执行这样的操作吗
  • 我能保证没有人能读到吗
  • 是否有其他方法在系统上存储数据?(仅软件可读)
  • 像这样的东西可能会有帮助。这是一个将字符串加密为加密格式的示例。如果您能够以字符串格式获取文件中所需的内容,那么可以按照链接中显示的方式对其进行加密,然后将其输出到您的文件中。这样,当文件被打开时,他们只会有加密的信息(或者对未经训练的人来说,是一堆粘糊糊的东西)

    据我所知,所有文件扩展名都可以以某种格式打开,即使您必须求助于诸如记事本之类的低级应用程序,因此最好的办法是将文件中的信息置乱


    希望这有帮助

    您需要一些库来加密和解密数据(如前面提到的user2777005)

    然后您需要考虑加密的密钥。密钥可以是密码,例如,应用程序用户输入的密码

    如果密钥不是来自用户(例如,您的应用程序只是对文件进行静默加密和解密),则需要以任何人都无法访问的方式存储该密钥。存储此类密钥的一个可能位置是windows注册表。在这种情况下,您将在目标计算机上安装应用程序时创建一个密钥


    但是,如果一个不允许用户打开编辑器和读取文件的保护级别对您来说足够了,您可以简单地将密钥硬编码到您的软件中。这当然意味着,中等技能的黑客可以读取文件。

    文件扩展名只是一个提示,一些惯例。另外,系统管理员可以读取任何文件——所以你实际上是在寻找一种文件格式,这种格式是模糊的,可能是加密的。是的,这就是我要找的,我怎么能做这样的事情呢?你的链接建议使用DES作为密码,这在今天是不安全的。其次,建议使用ECB模式,不应使用太多的读链接。第三,没有身份验证,所以文件可以在用户不知道的情况下被篡改。我建议使用已知的安全AE模式。