我为flutter找到了加密包来加密和解密一条消息,我成功地加密和解密了,但没有成功地在一个cas中使用这个独立的设备,如图所示。
这是一个例子,我用一个静态字符串和一个随机数组成一个明文,它允许更改生成的密钥,当我解密时,发现静态字符串与正则表达式匹配
var number = new Random();
var random= number.nextInt(100);
final plainText = 'static_name$random';
final key = Key.fromLength(16);
final iv = IV.fromLength(8);
final encrypter = Encrypter(AES(key));
final encrypted = encrypter.encrypt(plainText, iv: iv);
final decrypted = encrypter.decrypt(encrypted, iv: iv);
print(encrypted.base64);//my plaintext is encrypted fesesgesgneslg465esg6es4g
print(decrypted); //my random plaintext is decrypted static_name$rnd
//my regex match function
目前我找不到如何输入我的加密密钥(fesesgesgneslg465esg6es4g)我塞拉赫要做这样的事情
---------按下时,我生成一个我加密的随机密钥---- var rng = new Random();
var rnd= rng.nextInt(100); //choisir le nombre max de contenu de la catégorie
final plainText = 'static_name$rnd';
final key = Key.fromLength(16);
final iv = IV.fromLength(8);
final encrypter = Encrypter(AES(key));
final encrypted = encrypter.encrypt(plainText, iv: iv);
//output : 68e4sg68es4ges68g4
// -用户在第二台设备上输入密钥(68e4sg68es4ges68g4)
encrypted=68e4sg68es4ges68g4;
final key = Key.fromLength(16);
final iv = IV.fromLength(8);
final encrypter = Encrypter(AES(key));
final decrypted = encrypter.decrypt(encrypted, iv: iv);
print(decrypted);
我找不到如何解密我的密钥(68e4sg68es4ges68g4)
总之,我成功地对输入进行了自动加密和解密,但没有成功地将生成的密钥手动添加到解密函数中。
您可以使用此方法:
String encrypted = "68e4sg68es4ges68g4";
final decrypted = encrypter.decrypt(encrypt.Encrypted.fromBase64(encrypted),iv:iv);
您尝试使用加密
包的方式存在严重问题。通过使用 Key.forLength(),
您基本上使用的是 0000000....000
的键。IV也是如此。这不是一个非常安全的密钥!
在两台不同的机器之间使用加密系统时,您需要找到某种方式在它们之间共享密钥 - 所谓的“共享密钥”。例如,您可以使用 PKKDF2 从“密码短语”生成此密码。或者,您可以只是将随机字节字符串编译到代码中,但预计攻击者可能会对您的代码进行反向工程。
使用 AES,您不应将相同的 IV 与相同的密钥一起使用两次,这就是为什么密码系统通常在密钥交换期间唯一地生成密钥和初始 IV,然后使用某些内容(如消息序列号)更改使用该密钥加密的每条消息的 IV。
出于测试的目的,就像您的测试一样,您可能希望使用这样的随机数生成器生成一个固定的16位密钥和固定的16位IV。然后使用< code>.fromBase64()构造函数。
var key = Key.fromBase64('yE9tgqNxWcYDTSPNM+EGQw=='); // obviously, insert your own value!
var iv = IV.fromBase64('8PzGKSMLuqSm0MVbviaWHA==');
在加密和解密应用程序中为密钥和IV使用相同的值。
使用lib中的模块在python中解密和加密字符串。最简单的方法 现在我想解密我之前输入的字符串。。
问题内容: 我正在通过Apache和Node.js服务器之间的不安全连接发送数据。我需要在PHP中加密数据并在Node.js中解密。我花了2天的时间使它正常工作,但是我只设法使消息签名正常工作,没有加密。我尝试将AES128-CBC,AES256-CBC,DES,AES128,AES256作为算法传递,但是效果不佳。 我在PHP中尝试过: 在Node.js中: 而且除了错误的解密数据外,我还会得到
问题内容: 我的意思是: 也许像: 在PHP中,您该怎么做? 尝试使用 ,但对我不起作用。 问题答案: 更新 PHP 7就绪版本。它使用PHP OpenSSL库中的openssl_encrypt函数。
我的意思是: 可能是这样的: null 尝试使用,但对我不起作用。
我知道有几个与此相关的问题,但是大多数答案都提供了.NET4.0及以上版本的解决方案。对于我的用途,我必须以.NET3.5为目标。我想简单地加密和解密一个字符串存储在一个文件中,所讨论的文本不是敏感的用户/个人信息。
我感兴趣的是构建一个个人使用的小应用程序,它将使用JavaScript在客户端加密和解密信息。加密的信息将存储在服务器上的数据库中,但不会存储解密的版本。 它不一定要是超级duper安全的,但我想使用一个当前未中断的算法。 理想情况下我可以做一些 生成编码字符串,以及类似于 以后再解码。 到目前为止,我已经看到了以下内容:http://bitwiseshiftleft.github.io/sjcl