java可运行的jar_可运行的jar文件可以解释为java源代码

本问题已经有最佳答案,请猛点这里访问。

当我从Eclipse的Java源代码文件中创建一个Runnabl JAR文件时,我相信它创建了一个可以由JVM运行的类文件。

我之所以这样问是因为我要制作一个Java应用程序来保存我所有的密码。该应用程序将由一个请求密码的界面组成,如果密码正确,则显示密码。以下是我关于这个主题的问题:

可运行的*jar文件*究竟包含什么?

如果可运行的JAR文件由一个类文件组成,那么该类文件是否可以被解释为能够看到修改密码的源代码?

当您从CMD运行Runnabl JAR文件并键入"Java-JAR XXX"时。"XXX"意思是文件名,"-jar"意味着你要运行JAR文件,而"Java"意味着在JVM中运行下面的文件?

这类似于.exe文件,当转换为.exe文件时,无法取消对可读源代码的操作。

相关:stackoverflow.com/questions/2537568/best-java-obfuscator-简而言之:确保没有人可以找到您的密码,即使源在手边。

Jetty使用了一种简单的方法来编码密码,这样密码就不容易被人阅读。你可能想做类似的事情。

另请参见stackoverflow.com/questions/8584857/encryption and decompili‌&8203;ng

您不使用现成的密码管理器应用程序有什么特别的原因吗?有各种商业和开放源代码选项可供选择,这些选项是由了解安全性并努力避免问题解答者注意到的各种问题的人开发的。例如,密码安全是由布鲁斯施耐尔(BruceSchneier)创建的开源密码管理器,他是一位受人尊敬的密码学家和安全执行者。

对于未分配的问题:如果您的密码在源代码中,那么很容易找到它在类文件中的位置。

可运行的JAR文件是包含类文件的JAR文件(即带有JAR后缀的zip文件),以及包含有关启动哪个类的信息的特殊文件。

您可以解压缩字节代码:http://www.program-transformation.org/transform/javadecompilers以获取源代码。但实际上,您可以在字节代码中看到密码,而无需对其进行反编译。

对。在Java-JAR XXX Java中,使用名为XXX的JAR文件运行JVM

如果您知道创建的语言和工具,您应该能够将exe文件反编译为类文件。即使不是,源代码中的密码也很容易在.exe文件中找到。所以是的,jar文件有点像exe文件,但它们与您描述的不同。

如果您想让一个应用程序维护您的密码,请使用您作为应用程序用户在启动时提供的主密码对存储的密码进行加密。永远不要在源代码中存储密码。

Java类文件可以被分解回可读取的Java代码。不过,更简单的是,您可以从编译的类文件中提取所有密码,因为它们是以纯文本形式存储的(例如,在GNU机器上尝试使用strings命令)。

因此,不,密码在类文件中本质上是不安全的(因此不在JAR档案中,因为JAR可以很容易地被解包)。

您需要做的是实现某种加密,并让您的程序将密码保存在加密文件中。然后,您的程序将需要您输入解密密钥,甚至能够解包密码。密钥不应该包含在Java程序中,每次运行程序时都应该由您提供。

基本上,无论你多么努力,任何人都可以很容易地对它进行反编译和读取。

如果可以,请不要存储密码,在服务器上联机比较(使用异步加密),或者使用每次提供给应用程序的主密码存储密码。

如果不能,不要按原样存储密码。我能想到的最好的事情是存储(和检查)密码的哈希代码。用户输入密码,然后输入sha-256'd,将得到的哈希代码与您存储的密码哈希代码进行比较。加盐以防彩虹桌。

其思想是散列函数只是单向的,密码无法从散列中恢复。因此,如果密码足够强大,任何人都不应该在合理的时间内获得密码。

关于这个的一个非常好的阅读是wiki链接——但最显著的是jasipt.org上的这篇文章。

也就是说,如果您试图对包含哈希的文件进行加密以添加另一层安全性,那么仍然可以使用反编译器和调试器来找到解密的密码,因此不要指望它对真正想要通过的人是非常有效的。因此,与其说它是真正的加密,不如说它是通过模糊来实现安全性的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值