js加密,c#解密

server/2024/10/19 11:48:59/

目录

    • js加密
    • c#解密
    • c#加密
    • js解密

js加密

javascript">    async function encryptText(plaintext) {// 将文本转换为ArrayBufferconst textEncoder = new TextEncoder();const dataBuffer = textEncoder.encode(plaintext);// 密钥和初始化向量,应该是一个安全的随机值const key = '123456789012345678901234567890ab'; // 32字节密钥const iv = '1234567890123456'; // 16字节初始化向量// 将密钥和初始化向量转换为ArrayBufferconst keyBuffer = new Uint8Array(key.split('').map(c => c.charCodeAt(0)));const ivBuffer = new Uint8Array(iv.split('').map(c => c.charCodeAt(0)));// 使用AES-CBC算法和PKCS7填充const cryptoKey = await window.crypto.subtle.importKey('raw',keyBuffer,{ name: 'AES-CBC', length: 256 },false,['encrypt']);// 加密数据const encrypted = await window.crypto.subtle.encrypt({ name: 'AES-CBC', iv: ivBuffer },cryptoKey,dataBuffer);// 将加密后的数据转换为Base64字符串const encryptedArray = new Uint8Array(encrypted);return btoa(String.fromCharCode(...encryptedArray));}

c#解密

        public string DecryptAes( string encryptedData, string key,string iv){// 转换为字节数组byte[] encryptedBytes = Convert.FromBase64String(encryptedData);// 创建解密器using (Aes aes = Aes.Create()){aes.Key = Encoding.UTF8.GetBytes(key);aes.IV = Encoding.UTF8.GetBytes(iv);aes.Mode = CipherMode.CBC;aes.Padding = PaddingMode.PKCS7;// 创建解密器ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);// 解密byte[] decryptedBytes = decryptor.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);// 输出解密后的数据return Encoding.UTF8.GetString(decryptedBytes);}}

c#加密

        public string EncryptAes(string content, string key, string iv){// 转换为字节数组byte[] contentBytes = Encoding.UTF8.GetBytes(content);// 创建解密器using (Aes aes = Aes.Create()){aes.Key = Encoding.UTF8.GetBytes(key);aes.IV = Encoding.UTF8.GetBytes(iv);aes.Mode = CipherMode.CBC;aes.Padding = PaddingMode.PKCS7;// 创建解密器ICryptoTransform decryptor = aes.CreateEncryptor(aes.Key, aes.IV);// 解密byte[] encryptedBytes = decryptor.TransformFinalBlock(contentBytes, 0, contentBytes.Length);// 输出解密后的数据return Convert.ToBase64String(encryptedBytes);}}

js解密

javascript">  async function decryptText(ciphertext) {// 密钥和初始化向量,应该是一个安全的随机值const key = '123456789012345678901234567890ab'; // 32字节密钥const iv = '1234567890123456'; // 16字节初始化向量// 将密钥和初始化向量转换为ArrayBufferconst keyBuffer = new Uint8Array(key.split('').map(c => c.charCodeAt(0)));const ivBuffer = new Uint8Array(iv.split('').map(c => c.charCodeAt(0)));// 将Base64字符串转换为ArrayBufferconst encryptedArray = new Uint8Array(atob(ciphertext).split('').map(c => c.charCodeAt(0)));// 导入密钥const cryptoKey = await window.crypto.subtle.importKey('raw',keyBuffer,{ name: 'AES-CBC', length: 256 },false,['decrypt']);// 解密数据const decrypted = await window.crypto.subtle.decrypt({ name: 'AES-CBC', iv: ivBuffer },cryptoKey,encryptedArray);// 将解密后的数据转换为文本const textDecoder = new TextDecoder();return textDecoder.decode(decrypted);}

http://www.ppmy.cn/server/28639.html

相关文章

【百度网盘倍速播放】

火狐浏览器安装插件global speed

半监督节点分类:标签传播和消息传递

基础概念回顾 传统图机器学习的特征工程——节点层面,连接层面,全图层面 节点层面:信用卡欺诈 连接层面:推荐可能认识的人 全图层面:预测分子结构 半监督节点分类 半监督节点分类:用已知标签节点预测未…

04_机器学习赛事_一起挖掘幸福感

1. 函数库导入 import pandas as pd import numpy as np from sklearn.metrics import mean_squared_error import lightgbm as lgb import xgboost as xgb from sklearn.model_selection import train_test_split from sklearn.preprocessing import OneHotEncoder from skle…

设计模式- 中介者模式(Mediator Pattern)结构|原理|优缺点|场景|示例

设计模式(分类) 设计模式(六大原则) 创建型(5种) 工厂方法 抽象工厂模式 单例模式 建造者模式 原型模式 结构型(7种) 适配器…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.4--汇编LED驱动程序

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

基于MSOGI-FLL的交叉对消谐波信号提取网络MATLAB仿真

微❤关注“电气仔推送”获得资料(专享优惠) 模型简介: 此模型利用二阶广义积分器(SOGI)对基波电流和相应次的谐波电流进行取 ,具体是通过多个基于二阶广义积分器的正交信号发生器 ( S&#xf…

Github 2024-05-01 开源项目月报Top20

根据Github Trendings的统计,本月(2024-05-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目13TypeScript项目5C项目2非开发语言项目1C++项目1JavaScript项目1Rust项目1Go项目1Shell项目1Svelte项目1编程面试大学:成为软件工程…

Springboot+vue+小程序+基于微信小程序的在线学习平台

一、项目介绍    基于Spring BootVue小程序的在线学习平台从实际情况出发,结合当前年轻人的学习环境喜好来开发。基于Spring BootVue小程序的在线学习平台在语言上使用Java语言进行开发,在数据库存储方面使用的MySQL数据库,开发工具是IDEA。…