import org.apache.commons.codec.DecoderException; import org.apache.commons.codec.binary.Hex; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.SecretKeySpec; import java.io.UnsupportedEncodingException; import java.security.SecureRandom; import java.util.Base64; public class DESUtils { /** * 加密 * * @param datasource byte[] * @param password String * @return byte[] */ private static byte[] encrypt(byte[] datasource, String password) { try { SecureRandom random = new SecureRandom(); DESKeySpec desKey = new DESKeySpec(getKey(password.getBytes())); // 创建一个密匙工厂,然后用它把DESKeySpec转换成 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey securekey = keyFactory.generateSecret(desKey); // Cipher对象实际
Java DES/ECB/NoPadding 加密、解密
文章描述了一个Java实现的DES加密和解密工具类,包括加密函数encrypt()和解密函数decrypt(),使用DES算法进行ECB模式不填充的加密,以及相关的辅助方法如getKey(),byteToHex(),DesEn(),DesDn()等。
摘要由CSDN通过智能技术生成