C#与Java互通AES算法加密解密

///

/// <returns>&#x5BC6;&#x6587;</returns>

public static string EncodeAES( string text,&#xA0; string key, string iv)
RijndaelManaged rijndaelCipher =&#xA0; new RijndaelManaged();
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Padding = PaddingMode.Zeros;
rijndaelCipher.KeySize = 128;
rijndaelCipher.BlockSize = 128;
byte [] pwdBytes = System.Text.Encoding.UTF8.GetBytes(key);
byte [] keyBytes =&#xA0; new byte [16];
int len = pwdBytes.Length;
if (len > keyBytes.Length)
len = keyBytes.Length;
System.Array.Copy(pwdBytes, keyBytes, len);
rijndaelCipher.Key = keyBytes;
rijndaelCipher.IV = Encoding.UTF8.GetBytes(iv);
ICryptoTransform transform = rijndaelCipher.CreateEncryptor();
byte [] plainText = Encoding.UTF8.GetBytes(text);
byte [] cipherBytes = transform.TransformFinalBlock(plainText, 0, plainText.Length);
return Convert.ToBase64String(cipherBytes);

///

/// <returns>&#x660E;&#x6587;</returns>

public static string DecodeAES( string text,&#xA0; string key, string iv)
RijndaelManaged rijndaelCipher =&#xA0; new RijndaelManaged();
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Padding = PaddingMode.Zeros;
rijndaelCipher.KeySize = 128;
rijndaelCipher.BlockSize = 128;
byte [] encryptedData = Convert.FromBase64String(text);
byte [] pwdBytes = System.Text.Encoding.UTF8.GetBytes(key);
byte [] keyBytes =&#xA0; new byte [16];
int len = pwdBytes.Length;
if (len > keyBytes.Length)
len = keyBytes.Length;
System.Array.Copy(pwdBytes, keyBytes, len);
rijndaelCipher.Key = keyBytes;
rijndaelCipher.IV = Encoding.UTF8.GetBytes(iv);
ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
byte [] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
return Encoding.UTF8.GetString(plainText);

Original: https://www.cnblogs.com/Alex80/p/15950527.html
Author: 大西瓜3721
Title: C#与Java互通AES算法加密解密

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/536974/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 高企必备项目—SSM框架项目CRM客户管理系统

    首先我们来了解一下什么是CRM客户管理系统? CRM系统包括一些核心的客户关系管理业务功能,如:潜在客户、客户管理、拜访管理、商机管理、订单管理等模块,满足企业客户关系信息化的要求…

    Java 2023年6月9日
    069
  • Mac OS 常用Dos命令

    MAC DOS常用命令 调出终端 command+空格打开搜索栏,搜索term打开终端 常用操作 clear &#x6E05;&#x7A7A;&#x5C4F…

    Java 2023年6月9日
    058
  • 【转载】分享下多年积累的对JAVA程序员成长之路的总结

    注:该文是从百度贴吧转载过来,之前看到觉得写得还不错,对Java开发学习者来说很有意义的,可以看看。 我也搞了几年JAVA 了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩…

    Java 2023年6月7日
    075
  • ReentrantLock可重入、可打断、Condition原理剖析

    本文紧接上文的AQS源码,如果对于ReentrantLock没有基础可以先阅读我的上一篇文章学习ReentrantLock的源码 重入加锁其实就是将AQS的state进行加一操作 …

    Java 2023年6月16日
    056
  • SSM常见面试

    HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。 Han…

    Java 2023年6月9日
    086
  • 也说JVM内存区域

    运行时数据区五个部分 方法区 堆 程序计数器 本地方法栈 虚拟机栈 生命周期的区别 方法区和堆是随虚拟机启动创建,对应一个进程的生命周期 程序计数器、本地方法栈、虚拟机栈是随着线程…

    Java 2023年6月9日
    073
  • Spring定时任务的实现

    出处:http://cnblogs.com/daishuguang Original: https://www.cnblogs.com/daishuguang/p/5210159….

    Java 2023年5月30日
    059
  • Spring:AOP(切面)demo

    文章目录 + [项目目录结构](#-2) + [aop.xml](#aopxml-6) + [Log.java](#logjava-44) + [Test.java](#testj…

    Java 2023年5月30日
    064
  • TCP三次握手

    大佬链接:https://www.eet-china.com/mp/a44399.html TCP 的三次握手和四次挥手,可以说是老生常谈的经典问题了,通常也作为各大公司常见的面试…

    Java 2023年6月7日
    070
  • 小程序码生成

    如何获取小程序码 小程序码的本质是,向腾讯的服务器发送一个 get 请求,携带两个参数: page 和 scene。 以获取id 为 1 的问题为例,在本项目中,它被封装成这样一个…

    Java 2023年6月7日
    073
  • java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to

    Java .lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to 在使用JSON…

    Java 2023年5月29日
    081
  • LocalDate

    LocalDate 当天日期 2021-06-16 基本操作 操作 说明LocalDate.now() 获取当前日期,精确到日LocalTime.now() 获取当前时间,不含有日…

    Java 2023年6月5日
    064
  • SpringCloud使用Eureka

    基于springboot2.6.3,仅介绍单机版,分布式开发略有不同 大致步骤: 新建module A,选择eureka作为注册中心,启动类上添加@EnableEurekaServ…

    Java 2023年6月13日
    068
  • Docker-Java限制cpu和内存及浅析源码解决docker磁盘挂载失效问题

    之前工作流的运行都是用的docker-java提供的api拉起的docker容器直接跑服务,但是最新线上的新业务资源消耗较大,单个容器如果不加控制,CPU和内存都会拉满,导致服务器…

    Java 2023年6月7日
    066
  • 使用别的电脑连接另一台电脑当中的虚拟机中的kylin项目

    环境说明: 本机A的ip:192.168.0.242 服务器B的ip:192.168.0.125 服务器上的虚拟机C的ip:192.168.43.129 目前状态: B上面能访问C…

    Java 2023年5月30日
    067
  • 可变参数

    可变参数 当不确定需要传进多少个参数的时候,就可以使用 一个方法里最多只有一个可变参数,并且位置在最后面 他的写法是 int… n、double… n、St…

    Java 2023年6月6日
    054
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球