Angular 中的加密和 C# (.NET) 中的解密

2024-01-01

我有 Angular 中的数据加密代码,但我不知道如何在服务器端解密它。

角码

public static getEncryptedInfo(dataString): string {
    let password = environment.encryptionKey;
    var text = dataString.toString(CryptoJS.enc.Utf8)
    var encrypted = CryptoJS.AES.encrypt(text, password).toString();
    const encodedComponent = encodeURIComponent(encrypted).toString();
    return encodedComponent;
}

使用加密密钥=12345

加密为

U2FsdGVkX19klqZyBO7JyNzfxCBxAizFPkVYX%2Bb%2BUNs%2FVGEcr%2Fcxz3JmQcEgiojQ

在 Angular 中,我将这个加密值传递到服务器端。

我尝试在 C# 中解密此参考,但出现错误

public static string Decrypt(string plainText)
{
    RijndaelManaged aes = new RijndaelManaged();
    string decodeString = System.Web.HttpUtility.UrlDecode(plainText);
    var base64Decode = Encoding.UTF8.GetString(Convert.FromBase64String(decodeString));

    // var inputArray = Convert.FromBase64String(decodeString);
    ICryptoTransform AESDecrypt = aes.CreateDecryptor();

    var de = AESDecrypt.TransformFinalBlock(base64Decode, 0, base64Decode.Length);
    return encoding.GetString(de);
}

public static string DecryptText(string EncryptedText)
{
    if (string.IsNullOrEmpty(EncryptedText))
    {
        return "";
    }
    else
    {
        RijndaelManaged aes = new RijndaelManaged();
        string decodeString = System.Web.HttpUtility.UrlDecode(EncryptedText);
        var base64Decode = Encoding.UTF8.GetString(Convert.FromBase64String(decodeString));
        Byte[] outputBytes = StringToByteArray(base64Decode);
        var bytesToDecrypt = Convert.FromBase64String(EncryptedText);
        CryptoJS.AES.decrypt(encodedBytes, Secretkey).toString(CryptoJS.enc.Utf8)
        var actualText = Encoding.UTF8.GetString(base64Decode);

        var  de = base64Decode.Substring(0, base64Decode.Length - DecryptionKey.Length);

        return de;
    }
}

我错过了什么吗?


我建议你看看这个https://dotnetfiddle.net/Y7TFl0 https://dotnetfiddle.net/Y7TFl0这个完美的加密和解密 C# 代码。 对于 JS 请检查这个https://stackblitz.com/edit/cryptojs-aes-encrypt-decrypt-vfr5py?file=index.js https://stackblitz.com/edit/cryptojs-aes-encrypt-decrypt-vfr5py?file=index.js

两者不同

我的 c# 代码是这样的

字符串密码=“12345”; 字符串数据 = 加密("[电子邮件受保护] /cdn-cgi/l/email-protection", pw);

    string angularDecSring = "U2FsdGVkX19klqZyBO7JyNzfxCBxAizFPkVYX%2Bb%2BUNs%2FVGEcr%2Fcxz3JmQcEgiojQ";
    
    string decodeString = HttpUtility.UrlDecode(angularDecSring);
    
    
    Console.WriteLine("UrldecodeString: " + decodeString);
    
    Console.WriteLine("decrypt Value:" + HttpUtility.UrlEncode(data));
    
    Console.WriteLine("Decrypted: " + Decrypt(data, pw));

这是输出:

IV 字节数组:68 37 67 33 65 34 6D 33 74 35 73 74 35 7A 6A 77(大小:16) 块大小:128 位 UrldecodeString: U2FsdGVkX19klqZyBO7JyNzfxCBxAizFPkVYX+b+UNs/VGEcr/cxz3JmQcEgiojQ 解密值:IKVfDJLHlkrqoHNTYEabnkwwi8DiAKki4QZ6q9OndAA%3d 解密:[电子邮件受保护] /cdn-cgi/l/email-protection

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 中的加密和 C# (.NET) 中的解密 的相关文章

  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • Angular - 在一个组件中定义的函数,它生成动态子组件,不能在单独的非相关组件中调用

    更新到此这个新问题 https stackoverflow com questions 73987046 angular dynamically adding removing multiple instances of a single
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 重载<<的返回值

    include
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 如何使用 Angular CLI 在特定文件夹中生成组件?

    我将 Angular 4 与 Angular CLI 结合使用 并且可以使用以下命令创建一个新组件 E HiddenWords gt ng generate component plainsight 但我需要在 plainsight 中生成

随机推荐

  • 指令:$observe,类属性更改仅捕获一次

    我有一个更改 div 样式的指令 并且希望每次元素的类更改时 observe 都会通知我 问题是它发生在指令创建时而不是之后 这是代码和fiddle http jsfiddle net unludo 2h97m 21 div div spa
  • 在 django 中禁用视图或 url 的缓存

    在 django 中 我编写了一个仅返回文件的视图 现在我遇到了问题 因为 memcache 正在尝试缓存该视图 用它的话来说 TypeError 无法pickle 文件对象 由于我实际上确实需要使用此视图返回文件 我基本上为此视图创建了一
  • 使用 Spark 以编程方式创建嵌套数据框

    我正在尝试从嵌套 RDD 创建数据框 当然我可以使用toDF 方法 但我的RDD是一个案例类 在scala 2 10中有超过100个字段 如下所示 case class User val user id String valuser nam
  • 从 recordset.field.type 属性获取 ADO 数据类型的名称?

    我需要从 Access 表中生成字段列表 名称 类型和大小 这个简单的 VB 代码给了我almost我需要的 Set rs CurrentDb OpenRecordset myTable For x 0 To rs Fields Count
  • 如何在不改变窗口焦点的情况下打破全部

    在测试 Windows 窗体 UI 时 我经常希望在代码运行时修改代码 单击 Break All 箭头可以为我完成此操作 但是 Visual Studio 始终显示 Program cs 窗口并将焦点设置在 Application Run
  • 是否可以通过 .NET 代码对二进制文件进行签名? (没有signtool.exe)

    我有以下要求 使用证书签署二进制文件 但没有signtool exe 这个想法是通过代码来完成 你知道这是否可能吗 您将需要使用签名者签名 http msdn microsoft com en us library windows desk
  • 为什么 jquery ui 按钮在 Firefox 和 Chrome 中看起来不同

    我已经上传了一个示例页面https bobdn com Temp aspx https bobdn com Temp aspx 该页面只有一个 jquery UI 按钮 为什么这在 Firefox 中看起来有点大 填充和字体大小看起来都很大
  • SVG defs 上的鼠标事件(遮罩)

    背景图像上有 svg SVG 是一个中间有圆孔的正方形 作为示例 背景图像穿过圆圈出现 我想用鼠标拖动这个圆圈 但如何从 javascript 访问 svg 内的 defs 尚不清楚 我可以更改属性 但 onclick 事件对它们不起作用
  • jQuery + Ajax 哈希/历史记录等

    我正在尝试使用 jQuery 中的 URL 哈希来控制 Ajax 中的历史记录并使链接 页面可添加书签 我已经尝试了几乎所有插件 但似乎都无法正常工作 所以我实际上没有任何代码示例 但我愿意接受任何建议 信息 教程等 我试图将其合并到的其中
  • 类型提供程序可以作为参数传递给函数吗

    我正在学习 F 和FSharp 数据库 http fsharp github io FSharp Data 我有一个任务需要读取 20 个 CSV 文件 每个文件都有不同数量的列 但记录具有相同的性质 以日期字符串为键 所有其余列都是浮点数
  • 使用 EPPlus 复制/克隆 Excel 形状?

    是否可以使用 EPPlus 库在 Excel 工作表中创建形状的副本 克隆 我知道我可以得到一个现有的对象 var shapeExisting ws Drawings ShapeName ws是工作表对象 并创建新形状 var shapeN
  • CKEditor只读

    自从我使用 CKEditor 以来我遇到了一个问题 http ckeditor com http ckeditor com 问题是我找不到使编辑器只读的方法 而且我不能只使用文本区域 因为我想保持一致性 我已经在 StackOwerflow
  • 制作 Flash 游戏的可下载版本的最佳方法是什么?

    我已经用 Flash 制作了一款游戏 我想为那些宁愿离线玩的人提供一个简单的下载 事实是 我使用文件夹整体结构来动态加载每个级别的内容 文件夹结构看起来像这样 但这并不重要 游戏文件夹 animations 动画1 swf 动画2 swf
  • 使用 Apache POI 从 java 中的 excel 工作表读取数据

    我需要在 java 中读取 Excel 工作表中的数据 我能够读取普通字符串 但是当我尝试读取包含日期和时间的单元格 28 5 2018 10 00 时 我只得到日期为 2018 年 5 月 28 日 这是Excel单元格 此代码读取日期
  • NReco PDFGenerator 问题

    我已经使用这个工具大约一周了 现在 今天 它停止工作了 我已将其余代码恢复到之前的状态 但仍然出现相同的错误 我从抛出的异常中得到的所有信息是 NReco PdfGenerator dll 中发生 System Exception 类型的异
  • 在 Draft.js 中获取插入符位置(行号)

    如何获得 Draft js 中的插入符号位置 我想你可以从选择状态中获取块 然后获取块数组并查看块数组位于哪个位置 但我不确定这是一种可靠的方法 甚至是最好的方法 不确定这是否是您的意思 但您可以像这样获取当前块的索引 const curr
  • 为什么从命令提示符运行 JAR 文件时出现异常?

    您好 我使用 eclipse 上的导出选项制作了一个可运行的 JAR 文件 但是 当我通过命令提示符运行文件时 我得到以下信息 Exception in thread main java lang NoSuchMethodError at
  • Golang 歧义错误重新定义

    为什么可以redefine the err多变的 err ipdf Open source if err nil panic Couldn t open pdf payload err ioutil ReadFile other if er
  • 将大量数据从 iPad 转换/上传到 Dropbox

    我正在通过 Instruments 运行我的应用程序并使用大量数据对其进行压力来完成它 仪器测试进展顺利 但压力测试是我遇到问题的地方 在不涉及太多细节的情况下 我为我的应用程序提供了越来越多的Core Data它需要推断数据 制作图表并在
  • Angular 中的加密和 C# (.NET) 中的解密

    我有 Angular 中的数据加密代码 但我不知道如何在服务器端解密它 角码 public static getEncryptedInfo dataString string let password environment encrypt