首页 > 编程语言 >netcore AES同等效转java语言 加密方法

netcore AES同等效转java语言 加密方法

时间:2024-03-06 20:36:34浏览次数:26  
标签:AES 加密 String netcore new import java byte

private static byte[] Keys = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密钥,要求为16位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>

public static string EncryptDES(this string encryptString, string encryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 16));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);

using (var DCSP = Aes.Create())
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write))
{
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray()).Replace('+', '_').Replace('/', '~');
}
}
}
}
catch (Exception ex)
{
throw new Exception("密码加密异常" + ex.Message);
}

}


——————java代码——

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.ByteArrayOutputStream;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class EncryptionUtils {

    public static String encryptDES(String encryptString, String encryptKey) {
        try {
            String decryptKey = "A7ABA9E202D94C43A3CA66002BF77188";
            byte[] rgbKey = encryptKey.substring(0, 16).getBytes(StandardCharsets.UTF_8);
            byte[] rgbIV ={ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
            byte[] inputByteArray = encryptString.getBytes(StandardCharsets.UTF_8);

            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
            SecretKeySpec keySpec = new SecretKeySpec(rgbKey, "AES");
            IvParameterSpec ivSpec = new IvParameterSpec(rgbIV);
            cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);

            byte[] encryptedBytes = cipher.doFinal(inputByteArray);

            String base64Encoded = Base64.getEncoder().encodeToString(encryptedBytes);
            return base64Encoded.replace('+', '_').replace('/', '~');
        } catch (Exception ex) {
            throw new RuntimeException("密码加密异常: " + ex.getMessage());
        }
    }



    public static void main(String[] args) {
        String encryptKey = "your_encrypt_key";
        String encryptString = "string_to_encrypt";
        String encryptedString = encryptDES(encryptString, encryptKey);
        System.out.println("Encrypted String: " + encryptedString);
    }
}

标签:AES,加密,String,netcore,new,import,java,byte
From: https://www.cnblogs.com/eileenfdx/p/18057464

相关文章

  • JavaScript逆向之RSA算法
    RSA算法简介RSA算法属于非对称加密,加密的密钥称为公钥,解密的密钥称为私钥,公钥和私钥不是同一个。公钥是可以放在外面的,给谁都可以;但是私钥不可以放在外面,只能服务器自己保留,如果私钥泄露了,数据安全将有极大的风险。RSA的公钥和私钥是成对的,不能拆开。python中的RSA在python中......
  • Java登陆第三十二天——AJAX和异步
    AJAX菜鸟教程Ajax全名AsynchronousJavaScriptandXML(异步的JavaScript和XML)通过ajax可以向服务器发送异步请求。ajax最大的优势:在不刷新整个页面的情况下,可以与服务器产生数据交互,从而完成网页的局部更新。ajax并不是新的语言,和json一样。都是一种标准。常见的ajax案......
  • 关于Maven创建javaweb项目在配置Tomcat的问题(1)
    先将Maven项目转换成Java项目,确保没有架包没有报错和编译错误的情况下进行如下操作:打开Maven项目中的pom.xml文件,找到标签。查看里面是否配置元素,有则直接添加如下配置。org.codehaus.cargocargo-maven2-plugin1.7.6tomcat9xembedded如果没有,则先添加元素,然后再添加......
  • .NETCore文件上传将文件保存到docker容器以外的文件夹
    最近在开发一个文件服务,用于公司内容各应用的文件保存和查询获取。开发环境:windows10+.NETCore7.0+Mysql  发布环境:Liunx+Docker实现功能:文件服务提供接口上传文件和下载文件,服务用于内网访问。实现中遇到的问题:由于文件保存是用的系统自带文件服务。而部署环境是Liunx+Doc......
  • 店小密芒果店长商品搬家API接口PHP Java C++
    随着电子商务的迅猛发展,淘宝作为中国最大的电商平台之一,拥有着海量的商品数据和用户行为数据。为了更好地整合资源、提高运营效率,淘宝开放了商品详情API数据接口,为商家和第三方开发者提供了丰富的功能与应用。一、淘宝商品详情API数据接口概述淘宝商品详情API数据接口是淘宝开放......
  • Java学习笔记——第七天
    面向对象编程(ObjectOrientedProgramming,OOP)基础面向过程编程开发一个一个的方法,有数据要处理了,我们就调方法来处理。此时程序类似于流水线,按照代码自上而下依次运行。面向对象编程开发一个一个的对象来处理数据,把数据交给对象,再调用对象的方法来完成对数据的处理。程序在对......
  • Java 中Stream接口介绍
    Java流操作Stream接口Stream接口的继承关系:BaseStream=......
  • 基于java的彩票选号系统的二次开发
    引言:在网上看到了一个较为简易的基于java的彩票选号系统,其主要通过后台生成中奖号码,用户选择并输入号码的方式进行,界面设计较为的简陋,源代码也只实现了较为基础的功能,并存在一些问题,比如用户输入错误时的逻辑问题;故而我在源代码的基础上进行了一定的界面美化和功能的补全,以下先附......
  • Java 实现全链路日志跟踪唯一ID
    Java实现全链路日志跟踪唯一ID日志痛点:使用Spring-Aop切面的时候,只能切控制层或者服务层的开始位置与结束位置的数据(也就是请求出入参),对于逻辑日志无法定位跟踪普通打印日志的时候是这样子的1.如果参数里面没有seq传递过来LOGGER.error("xxx不能为空");2.参数里面有se......
  • Java 8 Supplier函数式接口介绍及代码样例
    介绍供应商接口(SupplierInterface)是Java8引入的java.util.function包的一部分,用于在Java中实现函数式编程。它表示一个函数,该函数不接收任何参数,但会产生一个类型为T的值。T:表示结果的类型分配给Supplier类型对象的lambda表达式用于定义其get(),最终产生一个值。......