加密字符串从 Delphi 到 C#

2023-12-12

我正在尝试解密在 Delphi 中使用 Cipher1 3.0 加密的 C# 中的一个字符串,来自 Delphi 加密纲要的第一部分。 我使用 TCipher_Rijndael。

我加密的字符串是:this-is-a-test-example

密码:通过

加密值是:iKBC8kX4ZEk4A1pCj6jwEegqjpxhqw==

当我尝试在 C# 中解密时,我收到错误:要解密的数据长度无效。

有人遇到同样的问题吗?有什么解决办法吗?

这是c#中的解密方法:

public static byte[] Decrypt(byte[] cipherData,
                                byte[] Key, byte[] IV)
    {

        MemoryStream ms = new MemoryStream();  
        Rijndael alg = Rijndael.Create();      
        alg.Key = Key;
        alg.IV = IV;
        CryptoStream cs = new CryptoStream(ms,
            alg.CreateDecryptor(), CryptoStreamMode.Write);           
        cs.Write(cipherData, 0, cipherData.Length);    
        cs.Close();
        byte[] decryptedData = ms.ToArray();
        return decryptedData;
    }

这是 Delphi 中的加密代码:

with TCipher_Rijndael.Create('pass',  nil) do
      begin
        memo2.lines.add ( CodeString( 'this-is-a-test-example' , paEncode, fmtDEFAULT));
        Free;
      end;

Thanks.


您需要确定该值如何加密的所有详细信息:

  1. What 分组密码操作模式被使用了?欧洲央行往往会违约。
  2. What 填充方案被使用了?也许你的情况下没有填充。
  3. 怎么样密钥派生从密码?也许与PBKDF2或者只是一个MD5 hash.
  4. 什么是初始化向量?请注意,只有某些密码模式需要一个。
  5. 输出是如何编码的?看来是Base64为您编码。

只有当您确切地知道它是如何加密的时,您才能逆向该过程以正确解密它。您可能想尝试发布更多代码或有关其加密方式的详细信息。然后有人可能能够确定您需要如何解密它。我见过这个场景之前未知,我设法猜测细节以找到答案。我尝试了一些常见的方法来处理您的加密字符串,但如果没有更多详细信息,我无法轻松解密它。

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

加密字符串从 Delphi 到 C# 的相关文章

随机推荐

  • Dropbox API 请求令牌不适用于 Python 3?

    我正在使用官方 Dropbox API 维护一个 Python 应用程序 为了要求用户让我的应用程序使用他们的 Dropbox 帐户 我使用了一个使用 DropboxSession 类的小脚本 这显然与我们可以在这篇博文 Include t
  • git merge 覆盖内容

    这是我的情况 我有两个功能分支 A 和 B 我想合并这两个分支 我做了以下事情 创建一个从 A 分支出来的新分支 C 签出新分支C run git merge B从命令行 我希望这两个分支合并 如果对相同文件的更改存在冲突 则该命令应引发合
  • Mongoose删除文档中的数组元素并保存

    我的模型文档中有一个数组 我想根据我提供的密钥删除该数组中的元素 然后更新 MongoDB 这可能吗 这是我的尝试 var mongoose require mongoose Schema mongoose Schema var favor
  • 如何确保链接的默认操作始终处于禁用状态?

    我正在开发一个项目 其中使用大量 ajax 调用来使站点交互更加优雅 我一直在使用的过程是获得脚本的链接 该脚本执行作为链接标记中的 href 存储的适当操作 然后 我使用 jquery 定位该元素并禁用默认操作并执行 ajax 调用 问题
  • Eclipse 中 Scanf 在 printf 之前执行

    我有以下简单的C语言代码 include
  • 在promise then mehod中返回Promise对象时的执行顺序[重复]

    这个问题在这里已经有答案了 代码是 Promise resolve then gt console log 0 return Promise resolve 4 then res gt console log res Promise res
  • 循环组合框 VBA

    我陷入了无法找到正确语法的困境 我正在处理的代码如下所示 Public Function Initializecolors initialize the colors by setting them with the help of the
  • 如何强制将重置推送到远程存储库?

    我们的远程主分支不知何故搞砸了 当前的开发代码与最新的提交一起位于主分支上 显然 开发代码还没有准备好用于主分支 因此 在我的本地存储库中 我重置了最新标签 git reset hard Tag 主分支现在在我的本地存储库上是正确的 现在
  • 以另一种形式访问类的同一实例

    我确信这是一个简单的问题 但我没有足够的经验来知道答案 DataClass Form1 Form2 我有公开课DataClass 在一个单独的文件中 DataClass vb In DataClass我需要访问的数据存储在多个数组中 我有方
  • 在 matplotlib 中绘制大量点和边

    我有一些这种格式的点 大约 3000 和边 大约 6000 points numpy array 1 2 4 5 2 7 3 9 9 2 edges numpy array 0 1 3 4 3 2 2 4 其中边是点的索引 因此每条边的开始
  • 自定义 Bash 提示符正在覆盖自身

    我正在使用自定义 bash 提示符来显示 git 分支 一切都在 etc bash bashrc function formattedGitBranch branch git branch 2 gt dev null sed e s d e
  • 选择每年的最佳记录

    我正在尝试回顾我的 sql 技能 现在我正在尝试在 Northwinddb 上运行一个简单的查询来向我显示每年的顶级客户 但是一旦我使用 TOP 函数 无论我在什么情况下 都只会显示 1 条记录分区依据 这是我的 T SQL 代码 SELE
  • ARM 中的 WFE 指令处理

    WFE 指令如何运作 我读到的是 它使处理器等待 IRQ FIQ event 但是 当您获得 IRQ 时会发生什么 irq fault handler 向量是否在获得中断或执行 WFE 之后的指令时执行 WFE 在概念上等同于 while
  • Firefox 滚动顶部问题

    我对 Firefox 的scrollTop 值和onscroll 事件有疑问 这在 IE Safari 和 Chrome 中效果很好 但 Firefox 似乎滞后 我尝试使用onscroll事件更新一些背景位置 但是当我拿起手柄并快速上下拖
  • ubuntu 16 上的 bash:set -e 不在子 shell 内继承

    当我运行这个命令时 set e echo echo I get himBH作为输出 我期待着这封信e包含在输出中 这是怎么回事 我使用的是 Ubuntu 16 04 1 LTS GNU bash 版本 4 3 46 1 release x8
  • 如何从 AngularJS 指令中选择动态生成的元素?

    在我的指令中 我需要选择某些 DOM 元素 其中一些元素是在 ng repeat 循环中动态生成的 如果我以直接的方式执行此操作 我将只获得静态元素 但是 如果我将选择延迟 500 毫秒 我将获得所有元素 这就是我想要的 虽然这可行 但它不
  • destroy_user_session_path 在 Rails 中触发 GET 而不是 DELETE

    我认为有以下代码 li li 它会生成以下 HTML a href users sign out Sign out a 但是 当单击该链接时 我收到以下错误 No route matches GET users sign out 我在这里做
  • 如何修复 Flask 蓝图的端点错误

    我正在用蓝图学习 Flask 我有以下代码示例 from flask import Flask render template Blueprint g bp Blueprint language name url prefix
  • 自定义 ListView 适配器。 TextChangedListener 调用错误的 EditText

    我有带有自定义适配器的旅行者列表 其中包含两个 EditText edtFirstName 和 edtLastName 我希望当用户输入文本时将更改保存到列表中 并且当单击下一个按钮时将此列表发送到另一个活动 My code public
  • 加密字符串从 Delphi 到 C#

    我正在尝试解密在 Delphi 中使用 Cipher1 3 0 加密的 C 中的一个字符串 来自 Delphi 加密纲要的第一部分 我使用 TCipher Rijndael 我加密的字符串是 this is a test example 密