- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从服务器人员那里得到了这段代码:
public string Encryption(string PlainText)
{
string key = "twelve_digit_key";
TripleDES des = CreateDES(key);
ICryptoTransform ct = des.CreateEncryptor();
byte[] input = Encoding.Unicode.GetBytes(PlainText);
byte[] buffer = ct.TransformFinalBlock(input, 0, input.Length);
return Convert.ToBase64String(buffer);
}
static TripleDES CreateDES(string key)
{
MD5 md5 = new MD5CryptoServiceProvider();
TripleDES des = new TripleDESCryptoServiceProvider();
des.Key = md5.ComputeHash(Encoding.Unicode.GetBytes(key));
des.IV = new byte[des.BlockSize / 8];
return des;
}
这是我针对上面的代码:
public String encryptDES(String message) throws Exception {
final MessageDigest md = MessageDigest.getInstance("md5");
final byte[] digestOfPassword = md.digest(getNativeKey3().getBytes("utf-8"));
final byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
for (int j = 0, k = 16; j < 8; ) {
keyBytes[k++] = keyBytes[j++];
}
final SecretKey key = new SecretKeySpec(digestOfPassword, "DESede");
final IvParameterSpec iv = new IvParameterSpec(new byte[8]);
final Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS7Padding");
cipher.init(Cipher.ENCRYPT_MODE, key, iv);
final byte[] plainTextBytes = message.getBytes("utf-8");
final byte[] cipherText = cipher.doFinal(plainTextBytes);
return Base64.encodeToString(cipherText, Base64.DEFAULT)
.replace("\n", "")
.replace("\r", "");
}
问题:
第一个代码给出以下结果:
但是第二个代码返回这个:
观察结果:
任何人都可以帮助我吗:
提前致谢
最佳答案
你被名字不好的 Unicode
愚弄了类,它实际上指定 UTF-16LE 而不是 UTF-8。
您可以使用StandardCharsets.UTF_16LE
用于指定编码而不是字符串;这可以让您免于处理一个异常。
如果长度仍然存在问题(测试!),那么您可能必须处理字节顺序标记或 BOM - 但我不这么认为。
关于java - Triple Des 代码返回不同长度的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54587846/
嗨,大家好,我有 java 代码,它为我生成三重加密代码,现在我尝试使用 crypto-js 在 javascript 上使用它,但这两个代码提供了不同的 key ,我不知道为什么以及如何获得相同的
我想尽可能简洁地(但清楚地)转换 List到 Triple, List, List> . 例如,假设执行转换的方法称为 turnOver ,我希望: val matches = listOf( T
这个问题已经有答案了: What is the JavaScript >>> operator and how do you use it? (7 个回答) Strange javascript op
含糊不清的问题: 1:为什么几乎 100% 的应用程序开发人员、应用程序开发社区和文献(书籍、教程等)都认为您想使用关系数据库或键值存储来表达数据? 2:为什么不是每个人都使用“三重”数据结构?
我正在准备一个Docker镜像来教我的学生链接数据的基础知识。我希望他们实际准备适当的RDF并模拟将其作为链接数据发布到Web上的过程,因此我准备了一个Docker镜像,其中包括: 三重存储:Blaz
我从服务器人员那里得到了这段代码: public string Encryption(string PlainText) { string key = "twelve_digit_key"; Trip
有一段时间我对此感到相当困惑,但我终于学会了如何使用 Raptor 和 Redland Python Extensions 解析大型 N-Triples RDF 存储 (.nt)。 一个常见的例子是执
我有这个 CSS: border: 2px solid #00ff60; outline: 1px solid #000; outline-offset: 0px; 产生这个: 我怎样才能调整它,让它
我想解析一个 n-triple 形式的 RDF 文件。 我可以编写自己的解析器,但我宁愿使用库,为此目的,Jena 似乎不必要地复杂化(或者至少我看不到他们的文档解释如何以合理的方式读取 n-trip
尝试运行现有的 meteor 项目时收到错误消息。 $meteor => Started proxy. => Started MongoDB. => Errors prevented startup:
我正在 .Net 上开发一个 mvc 应用程序,以保护我的敏感信息,例如 web.config 中的信息,我有两个使用 Triple DES 加密和解密信息的函数,但是我是新手在 friend 的帮助
我在 Protege 中创建了一个本体。现在为了让我的应用程序具有更好的可扩展性,我喜欢将 OWL 文件转换为三重存储并查询存储。 如何将 owl 文件转换为三重存储? 最佳答案 严格来说,OWL 不
我需要知道Triple DES算法适用的填充模式是什么,AI_PKCS_PADDING 是适用于 Triple DES 的填充模式吗? 最佳答案 根据Java Cipher API : Every i
我在互联网上搜索了 Java 的 Triple Des 算法实现。 我找到了很多解决方案并选择了一个(对我来说有更好文档的那个)。我测试过,工作正常。 然后,我搜索了 Java 的 AES 算法实现。
我打算在我的一个项目中使用 TripleDES。我正在做一些实验以适应它。我知道三重 DES 的 block 大小是 8 个字节,所以我假设如果提供 8 个字节的数据,我应该得到 8 个字节的加密数据
正如标题所说,我如何用霍尔三元组验证下面的功能?我阅读了有关它的各种讲座,但我不知道该怎么做。 int uguaglianza_insiemi(elem_lista_t *insieme_A,
我正在研究一个代码挑战问题——“找到幸运的三元组”。 “幸运三元组”定义为“在列表 lst 中,对于像 (lst[i], lst[j], lst[k]) where i < j < k 这样的三元组的
我正在用 C# 解密消息,此消息使用以下代码在 PHP 中加密:- public function __construct($sEncryptionKey) { $this->link = m
我正在尝试查找本地系统分配给箭头键的值,特别是在 Python 中。我正在使用以下脚本来执行此操作: import sys,tty,termios class _Getch: de
我想用前缀来表示这个nt文件: . "a" . "b" . "c" . 我写入一个新的nt文件是: @prefix sp: . . "a" . "b" . "c"
我是一名优秀的程序员,十分优秀!