【问题标题】:Encrypt a string using a salt in AS3/C#在 AS3/C# 中使用盐加密字符串
【发布时间】:2012-11-05 22:39:36
【问题描述】:

我正在寻找一个在 Flex/AS3 中加密字符串并在 C# 中读回的示例。它们的 C# 部分不如 AS3 重要,因为我对 AS3 知之甚少。

理想情况下,我想让它尽可能短 - 总共 16 个字符会很好。

我尝试使用 as3corelib 中的 EncryptionKeyGenerator,但我得到一个错误,它找不到 EncryptedLocalStore。

我想是因为我需要导入 com.adobe.air.crypto.EncryptionKeyGenerator 和 air 和 flex 冲突

【问题讨论】:

  • 如果您设法将任意字符串压缩为 16 个字符,然后将其读回原来的样子,那么您应该进入 zip 行业……

标签: c# actionscript-3 c#-4.0 encryption md5


【解决方案1】:

可以在AS3端使用as3crypto进行加密,在C#端使用AesCryptoServiceProvider进行解密。 “盐”无关紧要,但您可以将其用作初始化向量。

根据加密的强度和您要加密的输入的长度,您可以达到 16 个字节的长度,但在将字符编码作为字符串传递时要小心。通常最好传递一个十六进制字节数组。

【讨论】:

  • 我试试看。我之所以说 16 个字符的字符串是因为它需要从 AS3 程序中人工读取并手动输入到 C# 程序中进行验证。它当然不需要长 16 个字符,我只是不想要一个疯狂的长字符串。将被加密的输入不是很长 - 最长可能是 32 个字符。
  • 如果只是对加密字节进行编码,字符串将无法被人类阅读,但您可以尝试使用 Base64 对其进行编码。
  • 我有另一个可能的想法。有没有办法创建某种类型的校验和。让我再解释一下我正在尝试做的事情。我们的用户将收到一个代码提示,并且需要调用该代码。我们要通过代码来验证他们的用户名和一个数值。在这种情况下,我想使用代码来验证他们的名字和那个数值。有点像校验和,但它不能是人们可以复制的东西,这就是为什么我在考虑某种类型的加密。
  • 所以本质上是多因素身份验证?如果是这样,我可能会建议一种不同的方法。在加密的情况下,您的密钥需要编译到 FLA 中,然后进行复制。我建议让您的 FLA 调用生成随机代码的 Web 服务,将其存储在缓存中,在 X 分钟后使其过期,然后让您的 C# 访问相同的缓存以进行验证。我可以对此进行更多扩展,但最好开始聊天。
  • 不要以为我可以直接导入这个聊天,但这里有一个链接:chat.stackoverflow.com/rooms/19126/…
猜你喜欢
  • 2018-06-08
  • 1970-01-01
  • 1970-01-01
  • 2017-09-09
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
相关资源
最近更新 更多