C# 与 Java HmacSHA1,然后是 base64 [关闭]

2023-12-22

我有一个 java 代码示例,用于使用 HMAC-SHA1 算法(RFC 2104)计算摘要,然后使用 Base64 编码(RFC 2045)进行编码。

这是java代码

public static String buildDigest(String key, String idString) throws SignatureException {


 try {
    String algorithm = "HmacSHA1";
    Charset charset = Charset.forName("utf-8");
    SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), algorithm);
    Mac mac = Mac.getInstance(algorithm);
    mac.init(signingKey);
    return new String(Base64.encodeBase64(mac.doFinal(idString.getBytes(charset))), charset);
  } catch (Exception e) {
    throw new SignatureException("Failed to generate HMAC : " + e.getMessage());
  }
}

我在 Stack Overflow 中找到了答案,所以这里是 C# 代码

   private string EncodeHMAC(string input, byte[] key)
    {
        HMACSHA1 myhmacsha1 = new HMACSHA1(key);
        byte[] byteArray = Encoding.UTF8.GetBytes(input);
       // MemoryStream stream = new MemoryStream(byteArray);
        var hashValue = myhmacsha1.ComputeHash(byteArray);
        return hashValue.Aggregate("", (s, e) => s + String.Format("{0:x2}", e), s => s);
    }

    private string EncodeTo64(string toEncode)
    {
        byte[] toEncodeAsBytes = System.Text.UTF8Encoding.UTF8.GetBytes(toEncode);

        string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);

        return returnValue;
    }

我没有得到正确的结果我正在关注的教程 http://api.summon.serialssolutions.com/help/api/authentication


尝试这个:

// This method will return the base 64 encoded string using the given input and key.
private string EncodeHMAC(string input, byte[] key)
{
    HMACSHA1 hmac = new HMACSHA1(key);
    byte[] stringBytes = Encoding.UTF8.GetBytes(input);
    byte[] hashedValue = hmac.ComputeHash(stringBytes);
    return Convert.ToBase64String(hashedValue);
}

我认为您没有正确地将哈希值转换为 Base 64 字符串。

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

C# 与 Java HmacSHA1,然后是 base64 [关闭] 的相关文章

  • 使用 Mockito 模拟某些方法,但不模拟其他方法

    有没有办法使用 Mockito 模拟类中的某些方法 而不模拟其他方法 例如 在这个 诚然是人为的 Stock我想嘲笑的班级getPrice and getQuantity 返回值 如下面的测试片段所示 但我想要getValue 执行乘法 如
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr
  • HashMap 值需要不可变吗?

    我知道 HashMap 中的键需要是不可变的 或者至少确保它们的哈希码 hashCode 不会改变或与另一个具有不同状态的对象发生冲突 但是 HashMap中存储的值是否需要与上面相同 为什么或者为什么不 这个想法是能够改变值 例如在其上调
  • gdb 在 docker 上立即退出“进程已完成,退出代码 1”或 lldb“数据包返回错误 8”。另外:如何在 docker 中允许进行 C++ 调试

    这花了我一整天的时间才找到 所以我将其发布以供将来参考 我正在 docker 镜像上开发 C 我正在使用克利翁 我的代码是在调试模式下编译的 并且在运行模式下运行良好 但是当尝试调试时 进程会立即退出 并显示非常丰富的信息 Process
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • C# 编译器如何决定发出可重定向的程序集引用?

    NET Compact Framework 引入了可重定向程序集引用 现在用于支持可移植类库 基本上 编译器会发出以下 MSIL assembly extern retargetable mscorlib publickeytoken 7C
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • Spring-ws:如何从没有“Request”元素的 xsd 创建 Wsdl

    尝试为客户端实现 SOAP Web 服务 我需要一个 wsdl 文件来通过soapUI 测试该服务 但正如您在下面看到的 这个 xsd 没有 Request 和 Response 方法 所有请求和响应都被定义为基本 ServiceProvi
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • 通过等待任务或访问其 Exception 属性都没有观察到任务的异常

    这些是我的任务 我应该如何修改它们以防止出现此错误 我检查了其他类似的线程 但我正在使用等待并继续 那么这个错误是怎么发生的呢 通过等待任务或访问其 Exception 属性都没有观察到任务的异常 结果 未观察到的异常被终结器线程重新抛出
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • 如何重新启动死线程? [复制]

    这个问题在这里已经有答案了 有哪些不同的可能性可以带来死线程回到可运行状态 如果您查看线程生命周期图像 就会发现一旦线程终止 您就无法返回到新位置 So 没有办法将死线程恢复到可运行状态 相反 您应该创建一个新的 Thread 实例
  • Fluent NHibernate 日期时间 UTC

    我想创建一个流畅的 nhibernate 映射来通过以下方式映射 DateTime 字段 保存时 保存 UTC 值 读取时 调整为本地时区值 实现此映射的最佳方法是什么 就我个人而言 我会将日期存储在 UTC 格式的对象中 然后在读 写时在
  • 我应该在应用程序退出之前运行 Dispose 吗?

    我应该在应用程序退出之前运行 Dispose 吗 例如 我创建了许多对象 其中一些对象具有事件订阅 var myObject new MyClass myObject OnEvent OnEventHandle 例如 在我的工作中 我应该使
  • 过度使用委托对性能来说是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 考虑以下代码 if IsDebuggingEnabled instance Log GetDetailedDebugInfo GetDetailedDebugInfo 可能是一个昂贵的方法 因此我们只想在调试模式
  • 热重载时调用方法

    我正在使用 Visual Studio 2022 和 C 制作游戏 我想知道当您热重新加载应用程序 当它正在运行时 时是否可以触发一些代码 我基本上有 2 个名为 UnloadLevel 和 LoadLevel 的方法 我想在热重载时执行它
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO

随机推荐

  • 如何从 Int 的 sqrt 中获取最近的 Int 地板?

    我需要等于或低于 n 的 sqrt 的最大整数 我正进入 状态无法对不可变值使用变异成员 sqrt 返回不可变值 func isPrime n Int gt Bool if n lt 2 return false generatePrime
  • 如何使用 VBA 将数据验证添加到单元格

    我想使用 VBA 在单元格 可变 中添加 数据验证 并且数据验证列表中的范围也是可变的 到目前为止我一直在使用这个 这里 range1 是数据验证列表中的范围 rng 是我想要数据验证的单元格 Dim range1 rng As range
  • 无法从主机访问 Docker swarm 中的 Web 服务器

    我开始在 macOS 上使用 Docker 但在尝试完成时遇到了困难入门指南的第 4 部分 https docs docker com get started part4 accessing your cluster 我创建了两个额外的虚拟
  • 如何通过flask消息显示html内容?

    我明白那个flash 仅接受字符串并在重定向页面中显示该字符串 我正在尝试通过 flash 发送 html message h1 Voila Platform is ready to used h1 flash message return
  • 为什么这段简单的代码不起作用?

    我试图让浮点变量精确到小数点后三位以进行比较计算 我正在尝试下面的方法 但它不起作用 我不明白为什么不 所以请有人告诉我哪里出了问题 这段代码的输出是b 10000 050617 bb 10000050 and fbb 10000 000
  • MVC - 如何使用这种不寻常的发布数据格式对对象进行模型绑定?

    通常 当您使用 MVC 对对象列表进行 ModelBind 时 操作如下所示 public ActionResult Hello List
  • 使用 Lua 脚本启用 bash 输出颜色

    我有几个 Lua 脚本 可以在文本文件和控制台中运行体验并输出大量信息 我想在控制台输出中添加一些颜色 以使其更具可读性 我知道可以使用 ANSI 转义序列对 bash 脚本的输出进行着色 例如 echo e This is red gt
  • 图像 URL 未显示在单一集合类型的 API 调用 Strapi v4 上

    id 2 attributes title Test Title body Test Body date null createdAt 2021 11 30T20 52 09 206Z updatedAt 2021 11 30T20 57
  • 如何通过在 beforeEach 钩子中浅层安装 vue 组件来干燥代码?

    我第一次使用 vue test utils 在 Vue 应用程序中实现一堆单元测试 测试确实有效 但是 我想干燥代码 目前我正在将以下代码添加到每个测试中 const wrapper shallowMount ConceptForm loc
  • 如何预定义一个包含匿名类型的变量?

    In the 简化的下面的例子我想定义result在它被分配之前 下面的 linq 查询返回匿名类型的列表 result将从 linq 查询中作为 IEnumerable 出现 但我无法在方法顶部以这种方式定义它 我想做的事情可能吗 在 N
  • 在Java中以一定的时间间隔添加大量数据

    我想使用 jdbc 以一定的时间间隔向数据库表中添加记录 例如 我想以 10 秒的间隔添加 100000 条记录 因此它将插入 10000 条 秒 我的MySQL代码如下 String url1 jdbc mysql localhost 3
  • 我如何为特定列中的每个值添加总计行,该行基于其他列进行计算,

    假设我有这个数据框 我想要的是这个 我想要做的是创建根据月份变量进行分组的行 然后获取总变量的总和 以及该月所有值的 days month 变量的唯一值 我只是想知道是否有一种简单的方法可以做到这一点 不涉及多次传播并收集装饰总计 我必须在
  • C# 2D 游戏编程教程

    我想学习用 C 编写 2D 游戏 有哪些面向初学者 针对 C 编写 最好使用 GDI 或同样简单的东西 的最佳教程 我依靠这个社区的经验来引导我走向最好的方向 Books 开始 NET 游戏编程 https rads stackoverfl
  • Python Svgwrite 和字体样式/大小

    我正在尝试制作一个连接到网络抓取工具的 SVG 文件 如何使用 svgwrite 更改字体和文本大小 我知道我必须定义 CSS 样式并以某种方式将其连接到文本对象 但这是如何制作的呢 这是我到目前为止的代码 import svgwrite
  • 存储部分和的二叉树:名称和现有实现

    Consider a sequence of n positive real numbers ai and its partial sum sequence si Given a number x 0 sn we have to find
  • 使用脱字符号 (^) 拆分长命令不适用于批处理文件中的管道 (|)

    答案关于这个问题 https stackoverflow com q 69068 3705191声明可以通过使用插入符将长命令分成多行 一个答案提供了技术描述 插入符号 and 换行符其后的被删除完全来自命令 然而 这似乎并不总是有效pip
  • 如何处理 C 中的 free() 错误?

    假设我已经使用了free 函数来释放内存 由于多种原因 我不允许这样做 如何阻止我的 C 应用程序崩溃并生成错误并继续执行 我这里没有 try catch 类型的规定 例如 C java 有什么办法可以忽略这个错误并继续执行吗 If yes
  • React Native 中的 OCR 库。可以使用 tesseract.js 吗?

    我应该使用什么免费库来在 React Native 中进行扫描 我需要一个库来扫描文档 我想在相机上设置帧大小并从照片加载数据 我找到了一个库 但它不会再维护了 https github com jonathanpalma react na
  • git:如何重新同步 fork?

    我们需要遵循的工作流程是这样的 将 github 上的项目分叉到您自己的私人 githib 帐户中 将分叉项目克隆到本地计算机 在本地计算机上创建 主控的 功能分支 将分支提交到分叉存储库 在主存储库上向分叉存储库上的新分支发出拉取请求 这
  • C# 与 Java HmacSHA1,然后是 base64 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个 java 代码示例 用于使