一个java的DES加解密类转换成C#

一个java的des加密解密代码如下:

//package com.visionsky.util;

import java.security.*;
//import java.util.regex.Pattern;
//import java.util.Hashtable;
import javax.crypto.*;
import javax.crypto.spec.*;

import sun.misc.*;

/**
 * des加密解密
 */
public class DESPlus {
    private static String strDefaultKey = "PLFP"; //默认密钥

    private static final byte[] iv = {0x12, 0x34, 0x56, 0x78, (byte) 0x90, (byte) 0xab, (byte) 0xcd, (byte) 0xef};//des 向量

    private static BASE64Encoder enc = new BASE64Encoder();//将byte[]转换成String

    private static BASE64Decoder dec = new BASE64Decoder(); //将String转换成byte[]

    /**
     * 加密字节数组
     *
     * @param arrB
     *            需加密的字节数组
     * @param key
     *            密钥
     * @return 加密后的字节数组
     * @throws Exception
     */
    public static byte[] encrypt(byte[] arrB, String key) throws Exception {
        DESKeySpec desKeySpec = new DESKeySpec(key.getBytes());

        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
        SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
        IvParameterSpec ivp = new IvParameterSpec(DESPlus.iv);

        Cipher encryptCipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
        encryptCipher.init(Cipher.ENCRYPT_MODE, secretKey, ivp);

        return encryptCipher.doFinal(arrB);
    }

    /**
     * 加密字符串
     *
     * @param xml
     *            需加密的字符串
     * @param key
     *            密钥
     * @return 加密后的字符串
     * @throws Exception
     */
    public static String encrypt(String xml, String key) throws Exception {
        //return DESPlus.enc.encode(encrypt(xml.getBytes(), key));
	return new String(encrypt(xml.getBytes(), key)); 
    }

    /**
     * 使用默认公钥加密字符串
     * @param xml 需加密的字符串
     * @return 加密后的字符串
     * @throws Exception
     */
    public static String encrypt(St
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值