对于java的aes加密,我参考了这里:
https://github.com/stevenholder/PHP-Java-AES-Encrypt.git
编译的时候报错:
andy@AndyMacBookPro:/usr/local/webdata/java/PHP-Java-AES-Encrypt$ javac -classpath ./libs/commons-codec-1.10-javadoc.jar security.java
security.java:6: 类 Security 是公共的,应在名为 Security.java 的文件中声明
public class Security {
^
security.java:4: 软件包 org.apache.commons.codec.binary 不存在
import org.apache.commons.codec.binary.Base64;
^
security.java:17: 找不到符号
符号: 变量 Base64
位置: 类 Security
return new String(Base64.encodeBase64(crypted));
^
security.java:26: 找不到符号
符号: 变量 Base64
位置: 类 Security
output = cipher.doFinal(Base64.decodeBase64(input));
^
4 错误
andy@AndyMacBookPro:/usr/local/webdata/java/PHP-Java-AES-Encrypt$ ll
从
http://commons.apache.org/codec/
http://commons.apache.org/proper/commons-codec/download_codec.cgi
下载commons-codec-1.10-bin.tar.gz
然后解压之后,将 commons-codec-1.10.jar 移动到 ./libs/目录下,然后编译的时候通过 javac -cp ./libs/commons-codec-1.10.jar security.java 来编译即可:
andy@AndyMacBookPro:/usr/local/webdata/java/PHP-Java-AES-Encrypt$ javac -classpath ./libs/commons-codec-1.10.jar security.java
security.java:6: 类 Security 是公共的,应在名为 Security.java 的文件中声明
public class Security {
^
1 错误
andy@AndyMacBookPro:/usr/local/webdata/java/PHP-Java-AES-Encrypt$ mv security.java Security.java
andy@AndyMacBookPro:/usr/local/webdata/java/PHP-Java-AES-Encrypt$ javac -classpath ./libs/commons-codec-1.10.jar Security.java
andy@AndyMacBookPro:/usr/local/webdata/java/PHP-Java-AES-Encrypt$
原来是大小写的问题。。。
但是虽然我们编译通过,但是继续执行的话,还会报错:
andy@AndyMacBookPro:/usr/local/webdata/java/PHP-Java-AES-Encrypt$ javac -cp ./libs/commons-codec-1.10.jar security.java
andy@AndyMacBookPro:/usr/local/webdata/java/PHP-Java-AES-Encrypt$ java security
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
at security.encrypt(security.java:10)
at security.main(security.java:23)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 2 more
andy@AndyMacBookPro:/usr/local/webdata/java/PHP-Java-AES-Encrypt$
这是???经过检查发现,这是一个普遍存在的问题,原因就在于classpath目录没有加入”.”这个当前目录。
可以试试去 ~/.bash_profile 里添加一下java的classpath:
export CLASSPATH=.:/usr/local/webdata/java/PHP-Java-AES-Encrypt/libs/commons-codec-1.10.jar
然后不要忘了 source ~/.bash_profile , 然后我们再回去执行java试试~~