java-我想在flatter中解密和加密数据
发布时间:2022-07-08 11:49:56 232
相关标签: # php
我想使用AES cbc-128算法加密颤振中的数据。下面是java代码,我想在dart中实现与下面相同的功能。我试过了
flutter中的依赖关系,但问题是,我想在java代码中使用我自己的算法密钥,如下所示。如果你知道实现这一点的任何方法,请让我知道。
public static String Decrypt(String text, String key) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] keyBytes = new byte[16];
byte[] b = key.getBytes("UTF-8");
int len = b.length;
if (len > keyBytes.length)
len = keyBytes.length;
System.arraycopy(b, 0, keyBytes, 0, len);
SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivSpec = new IvParameterSpec(keyBytes);
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
BASE64Decoder decoder = new BASE64Decoder();
byte[] results = cipher.doFinal(decoder.decodeBuffer(text));
return new String(results, "UTF-8");
}
public static String Encrypt(String text, String key) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] keyBytes = new byte[16];
byte[] b = key.getBytes("UTF-8");
int len = b.length;
if (len > keyBytes.length)
len = keyBytes.length;
System.arraycopy(b, 0, keyBytes, 0, len);
SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivSpec = new IvParameterSpec(keyBytes);
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
byte[] results = cipher.doFinal(text.getBytes("UTF-8"));
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(results);
}
测试用例
对于以下输入
plainText="这是纯文本";
键="sahtojetrout2";
我希望加密结果是
加密文本=”8FmSMnDsFJVyNUXunhJLSmhFNRq89fl5DyTp0wdYfgk=';
Topaco在在线编辑器中编写的,您可以在此处查看Java 代码。在flatter中,我尝试了颤振网站上给出的程序。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报