当前位置: 首页 > 知识库问答 >
问题:

转换弹跳城堡aes密钥到UTF-8字符串

颜高朗
2023-03-14

我的程序生成AES密钥,用rsa算法加密并发送到服务器。但是,当我从服务器获取它并解密时,一些字节被破坏并替换为序列,根据这个问题UTF-8编码和解码问题,我意识到问题是服务器(也解密密钥)将其存储为UTF-8字符串。有没有办法创建“UTF-8友好”键?现在如何生成密钥:

        IBufferedCipher cipher = CipherUtilities.GetCipher("AES/CBC/PKCS7Padding");
        CipherKeyGenerator aesKeyGenerator = new CipherKeyGenerator();
        var rand = new SecureRandom();
        aesKeyGenerator.Init(new KeyGenerationParameters(rand, 256));
        byte[] key = aesKeyGenerator.GenerateKey();
        var aesKey = ParameterUtilities.CreateKeyParameter("AES", _key);
        var iv = new byte[32];
        rand.NextBytes(iv);
        ParametersWithIV aesKeyParam = new ParametersWithIV(aesKey, iv);

共有1个答案

童花蜂
2023-03-14

AES密钥由位/字节组成。如果您想查看它,您可以转换字节,那么您可能应该使用这些字节的十六进制编码。一般来说,您不需要这样做:AES密钥应该保持二进制。

只有在调试期间,转换为十六进制才有意义。因为这是关键材料,所以在代码正常运行后删除这些行也是有意义的——您可以使用测试键执行单元测试以验证正确性。

如果需要通过文本接口(SOAP、JSON、XML等)发送加密密钥,那么将RSA加密密钥转换为base 64是有意义的。不用说,您应该在收到打包(即加密)密钥后将其转换回二进制。

 类似资料:
  • 我想使用生成随机密钥,但java不支持填充,在我的算法中,我必须使用相同的填充,弹性城堡确实支持,但我无法理解如何使用它生成密钥 我的代码: 我收到的错误没有这样的算法

  • 我一直在尝试通过Bouncy Castle使用OpenPGP构建内存中的公钥加密基础设施。我们的一家供应商使用OpenPGP公钥加密来加密他们的所有提要,并要求我们也这样做,所以我被技术和实现卡住了。所以现在我正在编写一个OpenPGP加密/解密工具包来自动化这些提要。 bouncycastle.org的例子莫名其妙地默认将加密数据写入文件系统并从其中收集密钥;这不是我想做的,所以我一直试图让一切

  • 在FIPS模式下,PKCS#12格式在加密文件时必须使用兼容的加密和哈希算法。 当我阅读BC-FIPS文档时,它说在批准模式下,它们不支持PKCS#12,因此这意味着我们无法在BC-FIPS批准模式下读取PKCS12密钥库;我们使用BC-FIPS作为加密提供者,还使用PKCS12和JKS格式存储密钥和证书。 BC-FIPS声称-“PKCS12密钥存储支持以下变体: PKCS12-3DES-3DES

  • 加密是使用Stanford Javascript加密库(SJCL)完成的。下面是一个完整的加密示例,分为两部分。第一个是关于PBKDF2的基于密码的密钥派生。在第二部分中,使用派生密钥和初始化向量(IV)进行实际加密。注意,salt和IV是硬编码的,以便更容易提供C#解密解决方案。 null 变量的值: SJCL位阵列: 十六进制编码: Base64编码: 变量的值: null AES/CCM解密

  • 我正在生成AES-256密钥使用: 有没有办法将字节数组看作字符串?对我有效的唯一方法是: 如果我打印并复制字符串,并尝试使用在线Base64解码器对其进行解码,它会抱怨字符串不是UTF-8。 我知道它违背了加密的目的,但有没有办法可以将静态32个字符长的字符串分配为密钥?

  • 问题内容: 从我的数据库即时通讯获取以下字符串: 它应该说的是: 我试图像这样将其转换为utf-8: 但是仍然是同样的问题。 有任何想法吗? 问题答案: 使用npm中的utf8模块对字符串进行编码/解码。 安装: 在浏览器中: 在Node.js中: API: 编码: 将任何给定的JavaScript字符串(字符串)编码为UTF-8,并返回该字符串的UTF-8编码版本。如果输入字符串包含非标量值(即