程序在myEclipse中可以运行 在命令行里运行出错
package com.hnzskj.encrypt;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import org.apache.commons.codec.binary.Base64;
public class Encrypt {
/**
* 对称加密-产生密钥
*/
public static void generatorKey() {
SecretKey key = null;
try {
// 指定算法,这里为DES;如果想用Blowfish算法,则用getInstance("Blowfish")
// BouncyCastle基本上支持所有通用标准算法
KeyGenerator keygen = KeyGenerator.getInstance("DES");
// 指定密钥长度,长度越高,加密强度越大
keygen.init(56);
// 产生密钥
key = keygen.generateKey();
// 构造输出文件,这里的目录是动态的,根据用户名称来构造目录
ObjectOutputStream keyFile = new ObjectOutputStream(
new FileOutputStream("c:\\encrypt\\yhb.des"));
keyFile.writeObject(key);
keyFile.close();
} catch (NoSuchAlgorithmException e5) {
// generateKey()抛出的异常
e5.printStackTrace();
System.out.print("no such algorithm");
System.exit(0);
} catch (IOException e4) {
e4.printStackTrace();
System.out.print("error when generate the deskey");
System.exit(0);
}
}
/**
* 方法描述:对称加密-读取密钥
*/
private static SecretKey getSecretKey() {
// 从密钥文件中读密钥
SecretKey key = null;
try {
ObjectInputStream keyFile = new ObjectInputStream(
new FileInputStream("c:\\encrypt\\yhb.des"));
key = (SecretKey) keyFile.readObject();
keyFile.close();
} catch (FileNotFoundException ey1) {
ey1.printStackTrace();
System.out.println("Error when read keyFile");
System.exit(0);
} catch (Exception ey2) {
System.out.println("error when read the keyFile");
ey2.printStackTrace();
}
return key;
}
/**
* 方法描述:加密文本信息
*/
public static String encrypt(String encryptStr) {
SecretKey key = getSecretKey();
Cipher cipher = null;
try {
// 设置算法,应该与加密时的设置一样
cipher = Cipher.getInstance("DES");
// 设置解密模式
cipher.init(Cipher.ENCRYPT_MODE, key);
} catch (Exception ey3) {
ey3.printStackTrace();
System.out.println("Error when create the cipher");
}
byte[] data = null;
try {
data = cipher.doFinal(encryptStr.getBytes());
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
encryptStr = Base64.encodeBase64String(data);
return encryptStr;
}
public static void main(String[] args) {
System.out.println(encrypt("加密字符串"));
}
}
这个类在myeclipse中可以正常运行,但是命令行里执行时就出现以下问题:
java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES
at javax.crypto.Cipher.getInstance(DashoA13*..)
at com.hnzskj.encrypt.Encrypt.encrypt(Encrypt.java:90)
at com.hnzskj.encrypt.Encrypt.main(Encrypt.java:110)
Error when create the cipher
Exception in thread "main" java.lang.NullPointerException
at com.hnzskj.encrypt.Encrypt.encrypt(Encrypt.java:99)
at com.hnzskj.encrypt.Encrypt.main(Encrypt.java:110)
...全文
相关推荐
Eclipse导入Myeclipse web项目运行
本文将详细介绍如何在Eclipse环境中顺利导入由Myeclipse编写的Web项目,并确保其能够正常运行。
MyEclipse 2021.5.24a zip解压报错全解析:从EOCD到安装汉化
zip 是跨平台分发最常用的压缩格式,大到 IDE 环境、数据库安装包,小到字体和配置文件,都习惯用它打包传输。但正因为文件结构特殊,zip 在下载不完整、传输被截断时,很容易遇到 `invalid zip archive` 或 `could not find eocd` 这类报错,根源往往在于文件末尾的 EOCD 目录丢失。理解 zip 的格式原理,掌握 Linux 下 `unzip`、`zip -ff` 等命令的正确用法,能帮你高效处理损坏压缩包与分卷解压问题。这些基础操作同样适用于 MyEclipse
MyEclipse注册码程序 MyEclipse注册机 直接运行
MyEclipse注册码程序,直接在Eclipse里运行就可以生成注册码,无需任何工具部份代码:public class MyEclipseGen{}main方法运行:MyEclipseGen mye
一下是Tomcat在MyEclipse里运行时报的错
一下是Tomcat在MyEclipse里运行时报的错能不能告诉我怎么解决这个问题啊!各位大哥大姐们。。下地先谢过了!
myeclipse10导出war包时出错解决办法
在IT行业中,开发人员经常需要将Java Web项目打包成WAR(Web ARchive)文件,以便部署到服务器上运行。


Java SE
