求 .NET AES解密方法对应的JAVA代码 40C

下面是C#代码,求一个对应的JAVA版本代码
public static string AESDecrypt(string cipherString, string str)
{
if (string.IsNullOrEmpty(cipherString))
return string.Empty;
byte[] cipherText = Convert.FromBase64String(cipherString);
int length = cipherText.Length;
SymmetricAlgorithm des = Rijndael.Create();
des.Key = Convert.FromBase64String(str);
byte[] iv = new byte[16];
Buffer.BlockCopy(cipherText, 0, iv, 0, 16);
des.IV = iv;
byte[] decryptBytes = new byte[length - 16];
byte[] passwdText = new byte[length - 16];
Buffer.BlockCopy(cipherText, 16, passwdText, 0, length - 16);
using (MemoryStream ms = new MemoryStream(passwdText))
{
using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read))
{
cs.Read(decryptBytes, 0, decryptBytes.Length);
cs.Close();
ms.Close();
}
}
return Encoding.UTF8.GetString(decryptBytes);

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JAVA 对应的 AES 加密 与 解密
[code=java]rnpublic static void commonEncryptDecrypt(String pwd) throws UnsupportedEncodingException, NoSuchAlgorithmException, NoSuchPaddingException rn ivParameterSpec = new IvParameterSpec(SECRET_KEY.getBytes("UTF-8"));rn secretKeySpec = new SecretKeySpec(pwd.getBytes("UTF-8"), "AES");rn cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");rn rnrnrn//加密rnpublic static String encrypt(String toBeEncrypt,String pwd) throws InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException, NoSuchAlgorithmException, NoSuchPaddingExceptionrn commonEncryptDecrypt(pwd);rn rn rn cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);rn byte[] encrypted = cipher.doFinal(toBeEncrypt.getBytes());rn return Base64.getEncoder().encodeToString(Base64.getEncoder().encode(encrypted));rn rnrnrn//解密rnpublic static String decrypt(String encrypted,String pwd) throws InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException, NoSuchAlgorithmException, NoSuchPaddingException rn commonEncryptDecrypt(pwd);rn cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);rn byte[] baseStr = Base64.getDecoder().decode(encrypted);rn byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(baseStr));rn rn return new String(decryptedBytes);rn rnrn[/code]rnrn求大神们写一个对应的C#版本的加密与揭秘方法!!!!!!!!!!!!rn
关于AES解密,java代码转成c++代码
客户提供了java的实现aes的代码,然后需要我这边c++实现解密rnrnrn我在网上找了各种c++的aes算法,甚至包括Crypto++开源代码,结果发现产生的密文都是二进制数据,而客户提供的密文都是可显示字符,密文如下:rnrn1oEqdH8vYSxza/LINXTbu8H86ssc7tkO227qErhtV+K/HNGBjZLrgA0loYTVQU505BQj078b9Mehcy1qfvGmiJxNZO1GsfN2ey0ActInMBw=rnrn我是什么地方搞错了?rnrn附带java源码rnrn[code=java]rnrnpackage test;rnrnimport java.io.UnsupportedEncodingException;rnimport java.security.InvalidAlgorithmParameterException;rnimport java.security.InvalidKeyException;rnimport java.security.NoSuchAlgorithmException;rnimport java.security.spec.AlgorithmParameterSpec;rnrnimport javax.crypto.BadPaddingException;rnimport javax.crypto.Cipher;rnimport javax.crypto.IllegalBlockSizeException;rnimport javax.crypto.NoSuchPaddingException;rnimport javax.crypto.spec.IvParameterSpec;rnimport javax.crypto.spec.SecretKeySpec;rnrnpublic class AspireAes rn private static AspireAes instance = null;rnrn private Cipher cipher;rnrn SecretKeySpec key = null;rnrn AlgorithmParameterSpec iv = null;rnrn public static AspireAes getInstance() rn String key = "0123456789abcdef0123456789abcdef", iv = "0123456789abcdef0123456789abcdef";rn if (instance == null) rn instance = new AspireAes(key, iv);rn rn return instance;rn rnrn /**rn * 将32bytes的16禁止串压缩成16bytes,充分利用128bits的密钥空间rn * rn * @param hexrn * @return byte[]rn */rn private static byte[] packHex(String hex) rn int len = hex.length() >> 1;rn byte[] b = new byte[len];rn short k = 0;rn for (int i = 0, j = 0; i < len; i++, j = i << 1) rn k = Short.parseShort(hex.substring(j, j + 2), 16);rn b[i] = (byte) (k & 0xff);rn rn return b;rn rnrn private AspireAes(String keyStr, String ivStr) rn try rn iv = new IvParameterSpec(packHex(ivStr));rn key = new SecretKeySpec(packHex(keyStr), "AES");rn cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");rnrn catch (NoSuchAlgorithmException e) rn e.printStackTrace();rn catch (NoSuchPaddingException e) rn e.printStackTrace();rn rn rnrn /**rn * 加密rn * rn * @param Stringrn * txtrn * rn * @return Stringrn */rn public byte[] encrypt(byte[] txt) rn try rn cipher.init(Cipher.ENCRYPT_MODE, key, iv);rn return cipher.doFinal(txt);rn catch (IllegalBlockSizeException e) rn e.printStackTrace();rn catch (BadPaddingException e) rn e.printStackTrace();rn catch (InvalidKeyException e) rn e.printStackTrace();rn catch (InvalidAlgorithmParameterException e) rn e.printStackTrace();rn rn return null;rn rnrn /**rn * 加密rn * rn * @param Stringrn * txtrn * rn * @return Stringrn */rn public String encrypt(String txt) rn try rn byte[] b = this.encrypt(txt.getBytes("utf-8"));rn return Base64.encodeToString(b, 0, b.length, Base64.NO_WRAP);rn catch (UnsupportedEncodingException e) rn e.printStackTrace();rn rn return null;rn rnrn /**rn * 加密rn * rn * @param Stringrn * txtrn * rn * @return Stringrn */rn public byte[] decrypt(byte[] txt) rn try rn cipher.init(Cipher.DECRYPT_MODE, key, iv);rn return cipher.doFinal(txt);rn catch (IllegalBlockSizeException e) rn e.printStackTrace();rn catch (BadPaddingException e) rn e.printStackTrace();rn catch (InvalidKeyException e) rn e.printStackTrace();rn catch (InvalidAlgorithmParameterException e) rn e.printStackTrace();rn rn return null;rn rnrn /**rn * 加密rn * rn * @param Stringrn * txtrn * rn * @return Stringrn */rn public String decrypt(String txt) rnrn try rn cipher.init(Cipher.DECRYPT_MODE, key, iv);rn byte[] b = txt.getBytes();rn b = Base64.decode(b, 0, b.length, Base64.NO_WRAP);rn b = cipher.doFinal(b);rn return new String(b, "utf-8");rn catch (IllegalBlockSizeException e) rn e.printStackTrace();rn catch (BadPaddingException e) rn e.printStackTrace();rn catch (InvalidKeyException e) rn e.printStackTrace();rn catch (InvalidAlgorithmParameterException e) rn e.printStackTrace();rn catch (UnsupportedEncodingException e) rn e.printStackTrace();rn rn return null;rn rnrn public static void test() rn String txt = "JCE中支持AES,支持的模式和填充方式JCE中AES支持五中模式:CBC,CFB,ECB,OFB,PCBC;支持三种填充:NoPadding,PKCS5Padding,ISO10126Padding。不支持SSL3Padding。不支持“NONE”模式";rn AspireAes aes = AspireAes.getInstance();rn String x = aes.encrypt(txt);rn System.out.print("加密:" + txt + "\t\t" + x+"\r\n");rn txt=x;rn x = aes.decrypt(txt);rn System.out.print("解密:" + txt + "\t\t" + x+"\r\n");rnrn rnrn /**rn * @param argsrn */rn public static void main(String[] args) rn test();rn rnrnrnrn[/code]
AES的Java代码
基于Java的AES代码,包括轮密钥加、扩展密钥、列混淆、字节代换等代码,可以正常运行
求PHP的AES 解密函数
六.证件号加密解密算法rn证件号为AES 加密方式并以BASE64 编码为密文。只需要使用对应的密钥用AESrn解密即可,详情如下:rn加密算法:AES/ECB/PKCS5Padding (AES 加密,ECB模式,PKCS5 填充算法)rn编码:UTF-8/BASE64rn解密密钥:v074KOx28G46b6gHrn解密调用事例:rnvar data = Convert.FromBase64String("加密后的身份证密文"); //密文需要先用rnBASE64 解码转换为字节数组rnusing (var aes = Aes.Create())rnrnaes.Key = Encoding.UTF8.GetBytes("解密密钥"); //密钥rnaes.Mode = CipherMode.ECB; //ECB模式rnaes.Padding = PaddingMode.PKCS7; //PKCS7(兼容PKCS5)rnvar content = aes.CreateDecryptor().TransformFinalBlock(data, 0, data.Length);rn//AES 解密rnvar result = Encoding.UTF8.GetString(content); //明文rn
AES解密
import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax....
aes解密
上周五下午,正准备愉快的打打酱油,到下班时间就准时下班去配老婆吃饭,哪想到突然来个任务说表里有个字段是身份证号码,但是被aes加密了,需要把数据解码出来,并且当天就要结果。 当这个任务降临到我头上的时候,我内心是拒绝的,周五临近下班给人派活是非常不人道的,虽然心里对这个pm一阵阵膈应,但是想着应该也不算什么麻烦事,以python的简单粗暴搞这种活还不是分分钟完事。但是生活总是处处充满意外。 虽然
AES加密java代码
AES,加密,解密,密码 AES,加密,解密,密码 AES,加密,解密,密码 AES,加密,解密,密码 AES,加密,解密,密码 AES,加密,解密,密码
AES算法java代码
用JAVA实现的AES算法,可对文件,字符串,byte数组加密,详细显示每一步加密过程
AES加密解密java代码
该java文件中的方法主要实现AES加密、解密的功能
求java代码延迟执行的方法
找了下,好像没有发现这样的方法,不知道是真没有还是我没找着呢?rn 比如:只是暂停止1秒后,再执行其后的代码.rn
python3.6执行AES加密及解密方法
python版本:3.6.5 首先安装pycryptodome # pip install pycryptodome 加密方式特别简单,代码如下: 方式一:补0 #!/usr/bin/python # -*- coding: utf-8 -*- """ 补0方式 """ import base64 from Crypto.Cipher import AES # 补足字...
有没有@password()加密方法对应的解密方法
有没有@password()加密方法对应的解密方法
求一个AES解密指定文件的算法
这是原来的,不知道怎么错了rn [code=C#]public static bool AESDecrypt(string filePath, string strKey)//(解密文件路径,解密密码)rn rn string dir = Directory.GetParent(filePath).ToString();rn SymmetricAlgorithm aes = Rijndael.Create();rn rn FileStream fs = File.OpenRead(filePath);rn rn aes.Key = Encoding.UTF8.GetBytes(strKey);rn aes.IV = _key1;rn byte[] decryptBytes = new byte[(int)fs.Length];rn fs.Read(decryptBytes, 0, decryptBytes.Length);rn //fs.Close();rn MemoryStream ms = new MemoryStream(decryptBytes);rn CryptoStream cs = new CryptoStream(ms, aes.CreateDecryptor(), CryptoStreamMode.Read);rn cs.Write(decryptBytes, 0, (int)fs.Length);//文件流不支持写入rn rn cs.FlushFinalBlock();rn fs.Close();rn fs = File.OpenWrite(dir+"Encryption.dec");rn foreach (byte b in ms.ToArray())rn rn fs.WriteByte(b);rnrn rn fs.Close();rn cs.Close();rn ms.Close();rn return true;rnrnrn [/code]
求个可用的aes解密 加密的demo
网上找了几个c/c++可以加密解密,但是加密的结果跟我另外一种c# aes加密的结果不同,我确保c# aes加密是正确的。rnrn求个可用的aes解密 加密的demo,主要是加密解密一段string 和文件rnrn
aes的加密和解密算法
aes的加密和解密算法,目前最高标准的加密方式
Base64/AES加密、解密
Base64/AES加密、解密,简单方便,居家旅行必备之物
AES加密和解密工具
AES的加密解密的小工具,自己写入明文和密钥自动生成密文
AES加密与解密
AES加密与解密 二、 实验要求 1、在深入理解 AES 加密 /解密算法理论的基础上,设计一个 AES 加密 解密软件系统; 2、完成一个明文分组的加解密,明文和密钥是十六进制,长度都为 128 比特( 16 个16 进制数),输入明文和密钥,输出密文,进行加密后,能够进行正确的解密; 3、程序运行时,要求输出每一轮使用的密钥,以及每一轮加密或解密之后的 16 进制表示的值;
AES解密出现意外的截断
源文件经过AES加密后,文件二进制数据如以下16字节:rnrn 0xC3, 0x33, 0xDB, 0x50, 0x6D, 0x00, 0xF0, 0x48, 0xC9, 0x60, 0x3C, 0x51, 0x4A, 0x1C, 0x8B, 0x0E rnrn在进行解密的时候,以char型字符数组读取的时候,编译器默认读到0x00就认为数据到末尾了,但是实际上并没有。秘钥有时也会出现这个问题。rn我尝试将十六进制数据转换成int型,但是解密后数据不再是以前的数据了。请问应该怎么才能正确读取并解压数据呢?
AES加密和解密工具类
import java.util.Base64; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.slf4j.Logger; import org.slf4j.LoggerFactory; impo...
AES加密和解密算法
AES加密和解密算法的MATLAB实现算法,经过验证能够实现其功能,很值得大家来学习! AES_matlab\add_round_key.m AES_matlab\aes_demo.m AES_matlab\aes_init.m AES_matlab\aff_trans.m AES_matlab\cipher.m AES_matlab\cycle.m AES_matlab\dna_addr.dat AES_matlab\find_inverse.m AES_matlab\key_expansion.m AES_matlab\main.asv AES_matlab\main.m AES_matlab\mix_columns.m AES_matlab\poly_mat_gen.m AES_matlab\poly_mult.m AES_matlab\rcon_gen.m AES_matlab\rot_word.m AES_matlab\shift_rows.m AES_matlab\sub_bytes.m AES_matlab\s_box_gen.m AES_matlab
关于aes解密问题
网上下了个aes.dll,提供两个接口函数 EncodeFile ,DecodeFile,一个加密一个解密。我对ini文件,加密正常,解密的时候提示‘read beyond end of file’rn大家有没有好的文件加密解密函数,给我提供个谢谢了
AES 加密与解密
java AES 加密与解密 近些年DES使用越来越少,原因就在于其使用56位密钥,比较容易被破解,近些年来逐渐被AES替代,AES已经变成目前对称加密中最流行算法之一;AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据。本文就简单介绍如何通过JAVA实现AES加密。package com.ss.util.secret;import java.io.Unsupporte
AES解密函数代码实现
本课程涵盖区块链开发全部的必备密码学技术,包括密码理论、对称加密、分组密码、非对称加密、单向散列、消息认证、数字签名、证书、SSLrn等部分。掌握常见的密码学接口和程序设计。
AES加密、解密程序
Android上一款基于JNI的AES加密、解密程序,支持256、192、128位,本人亲测过没问题
AES加密和解密Demo
AES加密和解密在Android的实现,主要在于说明原理希望
AES加密 解密(javaScript)
AES算法,javaScript实现,源代码详细
AES加密、解密
获取密钥和向量 封装加密的方法   调用 封装解密的方法   调用解密的方法  
AES文件加密/解密实例
利用Cryptpp中的AES对文件进行加密与解密...
AES解密工具(java)
用于springboot中进行AES解密,对该工具类中函数进行参数输入:密文(加密数据),秘钥,偏移量,解密后编码(如UTF-8)后可以得到解密后的数据。
AES解密程序verilog
128bitAES解密算法 128bitAES解密算法 128bitAES解密算法
aes解密需要的BouncyCastleProvider
应用场景如,微信小程序获取用户详细信息需要aes解密,这个时候就需要这个jar包
AES加密与解密(秘钥)
代码如下:import org.slf4j.Logger;import org.slf4j.LoggerFactory;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto....
AES加密和解密
高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法。 以下实现代码中分别为NSData和NSString增加了一个Category。使用时直接调用即可。 需要注意的是,AES并不能作为HASH算法,加密并解密后的结果,并不一定与原文相同,使用时请注意进行结果验算。例如解密原文的长度,格式规则等。 NG实例 原文:170987350
AES加密、解密工具类
一、AES介绍 AES(Advanced Encryption Standard),中文名称高级加密标准。 AES是开发中常用的加密算法之一。然而由于前后端开发使用的语言不统一,导致经常出现前端加密而后端不能解密的情况出现。然而无论什么语言系统,AES 的算法总是相同的, 因此导致结果不一致的原因在于 加密设置的参数不一致 。于是先来看看在两个平台使用AES加密时需要统一的几个参数。 密钥长...
Python3的AES加密和解密
此加密和解密的秘钥的长度必须是16位、24位或者32位 import base64 import os from Crypto.Cipher import AES # AES key must be either 16, 24, or 32 bytes long aes_key = "12345678901234567890123456789012" # 加密 def aes_encrypt(...
AES 在 Linux 下解密错误
javax.crypto.BadPaddingException:Given final block not properly padded。
JAVA AES加密/解密
JAVA AES-CBC-128 加密解密
AES的JAVA加密C解密
基于AES加解密的示例 JAVA进行了加密处理 C进行了解密处理 让两者互相能够对称。 具体步骤可参考博客
AES的 加密与解密算法
c++控制台下的编程,绝对运行正确,AES的加密与解密算法!
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池