DES/ECB加解密算法

java版和C#版,可互相加解密。

其中PasswordUtil.java和PasswordUtil.cs可互相加解密。

DesUtil.java和DesUtil.cs可互相加解密。

 

一、以下两种加密方法相同

方法一:

Security.addProvider(new com.sun.crypto.provider.SunJCE());
byte[] arrB = new byte[8];
// 将原始字节数组转换为8位
for (int i = 0; i < key.getBytes().length && i < arrB.length; i++) {
    arrB[i] = key.getBytes()[i];
}
// 生成密钥
Key desKey = new javax.crypto.spec.SecretKeySpec(arrB, "DES");
Cipher encryptCipher = Cipher.getInstance("DES");
encryptCipher.init(Cipher.ENCRYPT_MODE, desKey);
byte[] resultByte = encryptCipher.doFinal(message.getBytes());

二、方法二:

            Cipher cipher = Cipher.getInstance("DES");

            byte[] arrBTmp = key.getBytes();

            byte[] arrB = new byte[8];

            // 将原始字节数组转换为8位

            for (int i = 0; i < arrBTmp.length && i < arrB.length; i++) {

                arrB[i] = arrBTmp[i];

            }

            DESKeySpec desKeySpec = new DESKeySpec(arrB);

            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");

            SecretKey secretKey = keyFactory.generateSecret(desKeySpec);

            cipher.init(Cipher.ENCRYPT_MODE, secretKey);

            byte[] encodeByte = cipher.doFinal(message.getBytes());

猜你喜欢

转载自jiage17.iteye.com/blog/2421908