从C#到Go:实现AES和Base64编码的兼容性

从C#到Go:实现AES和Base64编码的兼容性

💡 原文约600字/词,阅读约需3分钟。
📝

内容提要

几周前,我需要将C#的AES加密算法迁移到Go。由于没有C#源代码,只能通过反编译获取。发现问题出在Base64编码,而非AES算法。在ChatGPT的帮助下,我调整了Go的实现,使其与C#兼容,节省了大量时间。

🎯

关键要点

  • 需要将C#的AES加密算法迁移到Go。
  • 没有C#源代码,只能通过反编译获取。
  • 发现问题出在Base64编码,而非AES算法。
  • C#中使用HttpServerUtility.UrlTokenEncode进行Base64编码。
  • UrlTokenEncode进行URL安全的Base64编码,去除填充字符,并在末尾添加填充字符数量。
  • 在Go中,使用base64.RawURLEncoding进行Base64编码,并添加填充字符数量。
  • 通过ChatGPT的帮助,成功调整Go的实现,使其与C#兼容,节省了大量时间。
🏷️

标签

➡️

继续阅读