24位加密

Java

public class DESUtil {

    private static final String KEY_ALGORITHM = "DESede";

    private static final String CIPHER_ALGORITHM = "DESede/ECB/PKCS5Padding";

    private static final String ENCODING = "UTF-8";

    /**
*
* @param data body的JSON字符串
* @param key 腾住提供的DesSecret密钥
* @return
*/
public static String encrypt(String data, String key) {
byte[] encrypt = encrypt(data.getBytes(Charset.forName(ENCODING)), key);
return encrypt == null ? null : Base64.encodeBase64String(encrypt);
} private static byte[] encrypt(byte[] data, String key) {
try {
//实例化Des密钥
DESedeKeySpec dks = new DESedeKeySpec(key.getBytes());
//实例化密钥工厂
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(KEY_ALGORITHM);
//生成密钥
SecretKey secretKey = keyFactory.generateSecret(dks);
//实例化
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
//初始化,设置为加密模式
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
return cipher.doFinal(data);
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (InvalidKeySpecException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}
}

对应的C#


public static string Encrypt(string data, string key)
{ if (key.Length > 24)
key = key.Substring(0, 24); TripleDESCryptoServiceProvider tdsp = new TripleDESCryptoServiceProvider()
{
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7,
Key = Encoding.UTF8.GetBytes(key)
};
using (MemoryStream ms = new MemoryStream())
{
CryptoStream cStream = new CryptoStream(ms, tdsp.CreateEncryptor(), CryptoStreamMode.Write);
var buffer = Encoding.UTF8.GetBytes(data);
cStream.Write(buffer, 0, buffer.Length);
cStream.FlushFinalBlock();
cStream.Close();
return Convert.ToBase64String(ms.ToArray());
}
}

C#8位解密

           private string Des(string pToEncrypt, string key)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Mode = CipherMode.ECB;
//des.Mode = CipherMode.CBC;
des.Padding = PaddingMode.PKCS7;
var buffer = UTF8Encoding.UTF8.GetBytes(key).Take(8).ToArray();
des.Key = des.IV = buffer; using (MemoryStream ms = new MemoryStream())
{
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return HttpUtility.UrlEncode(Convert.ToBase64String(ms.ToArray()));// Encoding.UTF8.GetString(ms.ToArray()); }
}

C# 16 加密

            byte[] keyArray = Encoding.UTF8.GetBytes(Secret);// Convert.FromBase64String(Secret);
byte[] toEncryptArray = JsonHelper.SerializeObject(q); RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = rDel.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Convert.ToBase64String(resultArray, 0, resultArray.Length);

C# Java的加密的各种折腾的更多相关文章

  1. js和java MD5加密

    项目中用到js MD5加密和后台java MD5加密,刚开始加密后两个不一致,网上找了好久终于找到一个啦,记下来: md5.js /* * A JavaScript implementation of ...

  2. PHP、Java对称加密中的AES加密方法

    PHP AES加密 <?php ini_set('default_charset','utf-8'); class AES{ public $iv = null; public $key = n ...

  3. bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能

    xmlrpc .  https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很 ...

  4. Java Base64加密、解密原理Java代码

    Java Base64加密.解密原理Java代码 转自:http://blog.csdn.net/songylwq/article/details/7578905 Base64是什么: Base64是 ...

  5. Java 前端加密传输后端解密以及验证码功能

    目录(?)[-] 加密解密 1 前端js加密概述 2 前后端加密解密 21 引用的js加密库 22 js加密解密 23 Java端加密解密PKCS5Padding与js的Pkcs7一致 验证码 1 概 ...

  6. Java AES加密

    Java AES 加密 加密 /** * * @description 加密 * * @param content 需要加密的内容 * @param password 加密密码 * @return * ...

  7. java c# 加密与解密对照

    原文 java c# 加密与解密对照 最近一直烦恼,java , c# 加密的不同,然后整理了一下,留个备份的轮子: 其中在 java.c#加密转换时,最重要的是 IV 的确定,我常常用如下方法使得j ...

  8. java对称加密(AES)

    java对称加密(AES) 博客分类: Java javaAES对称加密  /** * AESHelper.java * cn.com.songjy.test * * Function: TODO * ...

  9. C# Java DES加密解密

    转自http://www.cnblogs.com/zhuiyi/archive/2013/04/01/2993201.html 最近被DES加解密弄得超级郁闷,我用C#的方法加密得到的密文老是跟客户给 ...

随机推荐

  1. Linux crontab命令:循环执行定时任务(详解版)

    前面学习了 at 命令,此命令在指定的时间仅能执行一次任务,但在实际工作中,系统的定时任务一般是需要重复执行的.而 at 命令显然无法满足需求,这是就需要使用 crontab 命令来执行循环定时任务. ...

  2. win10 自带计算器删除了怎么办

    win+S后输入Powershell,以管理员身份运行后,使用下面的命令:重要的说三遍:以管理员身份运行!以管理员身份运行!以管理员身份运行!Get-AppxPackage *calculator* ...

  3. 文档流&浮动&定位

    文档流指元素在文档中的位置由元素在html里的位置决定,块级元素独占一行,自上而下排列:内联元素从左到右排列脱离文档流的方式: 浮动,通过设置float属性 绝对定位,通过设置position:abs ...

  4. 微信小程序之页面导航栏

    效果图: 页面有点丑,作为初次学习,页面可以要求不那么美观,先学会再说.毕竟后面可以优化的很漂亮. 代码实例如下: <view class="section btn-area" ...

  5. python 操作 elasticsearch-7.0.2 遇到的问题

    错误一:TypeError: search() got an unexpected keyword argument 'doc_type',得到不预期外的参数 解决方法:elasticsearch7里 ...

  6. redis-sentinel 高可用方案实践

    近期公司的一块核心业务使用redis作为配置转发中心,存在单点问题,考虑服务的可靠性.针对业务需求,我们确定了我们的需求: 异地跨机房容灾 故障自动切换 尽可能高的保证数据不丢失 针对以上需求,我们分 ...

  7. Ubuntu18.04 Server安装Nginx+Git服务和独立的svn服务

    安装Nginx+Git 需要安装的包有 nginx, fcgiwrap, git. 其中git在Ubuntu18.04 Server安装时已经默认安装了. 需要安装的是前两个 而fcgiwrap是在 ...

  8. Eclipse创建Maven父子项目

    Eclipse创建Maven父子项目 - 木头若愚 - CSDN博客https://blog.csdn.net/jay_1989/article/details/53906995 创建maven项目是 ...

  9. 关于Linux中nohup.out日志过大问题

    背景,java项目,一般在运行JAVA程序时需要用到nohup命令来实现后台启动日志,默认保存在当前目露nohup.out文件.但是有些程序输出nohup文件会出现过大的情况. 在此解决如下: 1,在 ...

  10. js写入和读取cookie

    <!doctype html> <html> <head> <meta http-equiv="Content-Type" content ...