首页 > 其他分享 >AES加密

AES加密

时间:2024-03-21 11:35:02浏览次数:28  
标签:AES 加密 keyArray rDel Key byte

AES 算法加密(ECB模式),加密后进行base64编码

异常

Specified key is not a valid size for this algorithm

解决方法:AES加密中参数key应是32位,如果位数不对会报此错。

/// <summary>
/// AES 算法加密(ECB模式) 将明文加密,加密后进行base64编码,返回密文
/// </summary>
/// <param name="EncryptStr">明文</param>
/// <param name="Key">密钥</param>
/// <returns>加密后base64编码的密文</returns>
public static string AesEncryptor_Base64(string EncryptStr, string Key)
{
    try
    {
        //byte[] keyArray = Encoding.UTF8.GetBytes(Key);
        byte[] keyArray = Convert.FromBase64String(Key);
        byte[] toEncryptArray = Encoding.UTF8.GetBytes(EncryptStr);

        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);
    }
    catch (Exception ex)
    {
        return null;
    }
}

/// <summary>
/// AES 算法解密(ECB模式) 将密文base64解码进行解密,返回明文
/// </summary>
/// <param name="DecryptStr">密文</param>
/// <param name="Key">密钥</param>
/// <returns>明文</returns>
public static string AesDecryptor_Base64(string DecryptStr, string Key)
{
    try
    {
        //byte[] keyArray = Encoding.UTF8.GetBytes(Key);
        byte[] keyArray = Convert.FromBase64String(Key);
        byte[] toEncryptArray = Convert.FromBase64String(DecryptStr);

        RijndaelManaged rDel = new RijndaelManaged();
        rDel.Key = keyArray;
        rDel.Mode = CipherMode.ECB;
        rDel.Padding = PaddingMode.PKCS7;

        ICryptoTransform cTransform = rDel.CreateDecryptor();
        byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

        return Encoding.UTF8.GetString(resultArray);//  UTF8Encoding.UTF8.GetString(resultArray);
    }
    catch (Exception ex)
    {
        return null;
    }
}

标签:AES,加密,keyArray,rDel,Key,byte
From: https://www.cnblogs.com/duixue/p/18086993

相关文章

  • vite+vue3+vuex 加密
    1.安装JSEncrypt  npminstalljsencrypt2.加密方法//加密算法import{JSEncrypt}from'jsencrypt';//加密functionencryptText(text){ constpublicKey='MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCh5Nk2GLiyQFMIU+h3OEA4UeFbu3dCH5sjd/sLTxxvwjXq7JLqJbt2rC......
  • md5,aes,ras
    md5加密importhashlib#md5加密defmd5_encrypt(data):#创建一个md5加密器md5=hashlib.md5()#更新加密器的状态,这需要输入的字符串转为为字节串md5.update(data.encode('utf-8'))#获取加密后的16进制字符串returnmd5.hexdigest()if......
  • 提升Java编程安全性-代码加密混淆工具的重要性和应用
     在Java编程领域中,保护代码安全性和知识产权至关重要。本文旨在探讨代码加密混淆工具在提升代码安全性和保护知识产权方面的重要性。我们将介绍几款流行的Java代码加密混淆工具,如ProGuard、DexGuard、Jscrambler、DashO和ipaguard,并分析它们的功能和适用场景,旨在帮助开发者选择......
  • 密码加密|jsencrypt|md5|加密解密的两种方式
    一、md5npminstallmd5二、JSEncrypt2.1介绍JSEncrypt属于RSA加密,RSA加密算法是一种非对称加密算法;2.2使用安装:npminstalljsencrypt--dev封装工具:utils/jsencrypt.jsimportJSEncryptfrom'jsencrypt/bin/jsencrypt.min'//密钥对生成http://web.cha......
  • RSA算法揭秘:加密世界的守护者
    RSA算法起源:RSA算法是由RonRivest、AdiShamir和LeonardAdleman在1977年共同提出的。它是一种非对称加密算法,基于两个大素数的乘积难以分解的数论问题。RSA算法包括公钥和私钥,用于加密和解密数据,实现了安全的通信和数据传输。首页|一个覆盖广泛主题工具的高效在线平台(a......
  • 一次有趣的前端加密分析爆破
    前言一次有趣的密码加密爆破分享,仅供学习参考,如需转载请声明原文链接寻找登录加密点首先按住ctrl+shift+i打开开发者调试界面然后找到网络页面,随便输入账号密码提交一次查看启动器,直接点击蓝色的链接转到密码登录处分析js代码可以看到FinishLogin将curItem转到doStar......
  • 使用AES进行加解密
    今天来使用aes对sk(一个字段)进行加解密,要求秘钥一半在配置文件,一般写死aes就是一个加解密的工具,有加密和解密二个方法,是可逆的packagecom.huawei.koophone.openpower.common.utils.algo;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.codec.DecoderExcep......
  • 多数据源加密(90%来自文心一言)
    在dynamic-datasource-spring-boot-starter3.2.0中,如果你希望对加密的密码进行自定义解密,你需要实现自己的PropertySourceLocator或者自定义配置解析逻辑,以便在读取配置时能够自动解密密码。以下是实现自定义解密逻辑的一般步骤:创建自定义的解密工具类首先,你需要一个能......
  • 圣天诺LDK加密锁(加密狗)如何保护Linux系统下的软件
    首先下载圣天诺LDK加密锁(加密狗)开发工具包Sentinel-LDK.tar.gz。(下载地址:http://www.chinadlp.com/?list-DriveDownload.html)将其拷贝到有桌面的linux系统中,并解压后使用。1、安装驱动:在/Sentinel-LDK/Redistrubute/Runtime找到驱动: tar.gz包驱动安装方法:#tar-zxvfak......
  • 使用crypto-js加密
    在utils文件夹创建一个aes.js文件安装cnpminstallcrypto-jsimportCryptoJSfrom"crypto-js";constkey=CryptoJS.enc.Utf8.parse("");//十六位十六进制数作为密钥constiv=CryptoJS.enc.Utf8.parse("");//十六位十六进制数作为密钥偏移量//解密方法exportfu......