我试图解密我有权访问的数据库的值。 密码通过Windows API加密。所以我的想法还可以。让我们尝试然后以同样的方式解密它!
我使用Java 1.8.0_60和JNA-platform.jar ...
while (results.next()) {
String address = results.getString("value1");
String username = results.getString("value2");
String password = new String(Crypt32Util.cryptUnprotectData(results.getBytes("value_which_is_crypted")));
list.add(new String[] { value1,value2,value_which_is_crypted });
}
但是,如果我试图执行我的代码我得到一个ClassNotFoundException!
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Structure
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.sun.jna.platform.win32.Crypt32Util.cryptUnprotectData(Crypt32Util.java:121)
at com.sun.jna.platform.win32.Crypt32Util.cryptUnprotectData(Crypt32Util.java:103)
at com.sun.jna.platform.win32.Crypt32Util.cryptUnprotectData(Crypt32Util.java:90)
at recover.Chrome.recover(Chrome.java:35)
at recover.Chrome.main(Chrome.java:49)
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Structure
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 17 more
我希望这是足够的信息,因为这显然让我很头疼。 感谢帮助!
编辑:
好的经验教训..当你在构建路径中使用jna包括jna.jar和jna-platform.jar>时!谢谢你的帮助!
答案 0 :(得分:1)
在类路径中还需要jna.jar
- com/sun/jna/Structure.class
就在那个jar中。