问题标签 [tripledes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - TripleDes 加密/解密字符串有问号
在 vb.net 和 2.0 框架中开发了一个旧的 Web 应用程序。该应用程序读取存储在 Windows 注册表中的 sql 服务器名称的加密信息。说到这行代码
我在字符串中收到问号
“P??ARSMEYVDE02”
它应该是
“PLWARSMEYVDE02”
我尝试将编码更改为 UTF8、Default 或 Unicode,但没有成功。这是功能
纯文本的十六进制输出。
2750CCD74152534D45595644455630325C44455656533032272C2745594372797374616C486F73744244272C274372797374616C486F737455736572272C273132337265706F7274696E6721402327
c# - 零售 MAC 计算的 C# 实现(ISOIEC 9797-1 MAC 算法 3)
我正在尝试使用计算 MAC
加密校验和使用 ISOIEC 9797-1 MAC 算法 3 计算,采用分组密码 DES、零 IV(8 字节)和 1S09797-1 填充方法 2。MAC 长度必须为 8 字节
来自提供 ICC 只读访问权限的机读旅行证件技术报告 PM 发布:1.1 日期:2004 年 10 月 1 日。
我正在使用报告中的示例值:
肯克:AB 94 FD EC F2 67 4F DF B9 B3 91 F8 5D 7F 76 F2
Kmac: 79 62 D9 EC E0 3D 1A CD 4C 76 08 9D CE 13 15 43
eIFD: 72 C2 9C 23 71 CC 9B DB 65 B7 79 B8 E8 D3 7B 29 EC C1 54 AA 56 A8 79 9F AE 2F 49 8F 76 ED 92 F2
但是,我没有得到相同的 MAC,并且不确定我需要如何去做。我的第一次尝试是:
结果:
mIFD:1C DE 09 70 4C 0D 9B 12
预期的:
mIFD:5F 14 48 EE A8 AD 90 A7
然后我尝试手动执行每个步骤,因为我理解“ISO/IEC 9797-1 MAC 算法 3,带有分组密码 DES、零 IV(8 字节)和 1S09797-1 填充方法 2”,具体如下:(我基于Rasmus Faber 的回答,但将数据拆分为 64 位块以进行迭代步骤)
输出是:
eIFD:72 C2 9C 23 71 CC 9B DB 65 B7 79 B8 E8 D3 7B 29 EC C1 54 AA 56 A8 79 9F AE 2F 49 8F 76 ED 92 F2
key1:79 62 D9 EC E0 3D 1A CD
key2:4C 76 08 9D CE 13 15 43
结果:
mIFD:AA E3 F3 51 32 ED 34 65
预期的:
mIFD:5F 14 48 EE A8 AD 90 A7
在这两种情况下,它与预期的不同。我错过了什么?
感谢您的时间。
c# - 将 C# TripleDESCryptoServiceProvider 加密移植到 PHP
有一个用 C# 编写的项目,它使用以下代码加密/解密数据库的数据:
现在我应该在 PHP 中做同样的事情。到目前为止,我与以下代码一样接近:
但我无法解密由 C# 代码加密的字符串!我不是加密专家,谁能告诉我应该使用哪种加密算法和哪种模式?
c# - 解码字符串'BHQsZMaQQok='
我正在尝试解码像' BHQsZMaQQok=
'这样的字符串。
我对字符串的了解是它必须是一个数字。如果有必要,我可以找到更多加密字符串。
java - PHP如何处理三重加密的32字节密钥
道歉所有 - 加密新手 - 谷歌搜索了好几天,终于直接问了。
我需要使用 PHP 加密和解密 Java TripleDES“DESede/ECB/NoPadding”函数可读的数据。
在 Java 中有一个双倍长度的 32 个字符的密钥,例如“F4D5CBDF57FEEDCFA41FD6AFE7BCDFEA”,它被转换为字节并提供一个没有任何问题的加密结果。(我没有代码。)
在 PHP 中,当通过 mcrypt 尝试对三元组 ecb 函数调用使用相同的密钥时,会出现密钥长度错误,因为系统要求最多 24 个字符。
我需要对密钥做什么才能使 PHP 产生与 Java 相同的加密结果?
php - PHP mcrypt_generic_init 中的 IV 太长
我正在开发一个项目,其中来自 Web 服务的所有数据都使用三重 DES 加密进行加密。在我的具体情况下,我从已加密的 URL 接收查询字符串。Web 服务提供商给了我两个解密值:加密 Key_192 和初始化向量 IV_192。这两个键的长度均为 24 个字符。
当我尝试解密在 PHP 中收到的查询字符串时,我使用的是 mcrypt 库。初始化通用解密方法时,我的部分功能是:
但是,当我执行那部分代码时,我会收到以下消息:
Web 服务提供商无法就该错误提供任何指导,而是将我引导至他们的 VB.NET 实现,该实现具有如下行:
他们直接传递两个密钥,类似于 mcrypt_generic_init() 函数。
我知道 IV 大小取决于密码方法(三重 DES),但我对为什么我的 IV 比函数似乎支持的更长感到困惑。怎么可能?我对这种加密的经验是有限的,我无法将查询字符串解密为任何看起来不像随机字符字段的东西。
php - Java TripleDES 的 PHP 等效加密/解密。我没有得到相同的加密/解密
我必须使用tripleDES 加密和解密才能将一些信息发送到特定服务器。服务器使用 java 解密,我使用 PHP 加密和解密数据。
我已经尝试使用这个PHP Equivalent for Java Triple DES 加密/解密,但它不适用于我的问题。
我的 java 代码如下: 注意:Cadena 表示“字符串”,Llave 表示“键”。java代码不是我的。
我的PHP代码:
StringToHexString 是一种将字符串转换为十六进制字符串的方法。
javascript - PBEWithMD5AndTripleDES/CBC/PKCS5Padding的Nodejs javascript实现
为了编写一个简单的 nodejs 应用程序与用 java 编写的服务器交谈,我必须为 nodejs 实现以下功能。
我使用crypto
nodejs的模块
将加密信息发送到服务器后,我无法使用decipher
上面 java 代码示例中列出的 Object 解密消息。我认为主要问题是md5
部分。我不知道如何用crypto
nodejs
模块实现它。有谁知道如何解决这个问题?或者是否有任何其他模块或库来实现这一点?
编辑:我为nodejs尝试了另一个模块:node-forge
但我有几个问题/疑问:
- 我在javascript中使用正确的算法吗?
- 计算是否
salt
与java实现匹配? - 如何确定
keyLength
java 实现中使用了哪个? initialization vector
java实现中如何生成?在最后一个代码示例中,node-forge
我必须提供iv
oncipher.start(iv)
. 在 java 代码中,我看不到这是如何完成的。在我看来iv
,客户端和服务器上的必须相同还是不正确?
php - 3DES PHP 加密未正确解密
我正在使用以下代码对将在链接 URL 末尾传递到外部站点的信息进行加密。现在它能够自己进行加密和解密,但是当我去在线解密器(online-domain-tools.com,tools4noobs.com)时,我看到添加了额外的符号,或者它没有显示任何正确的内容。当然我是新手。我有什么,我从其他问题拼凑而成(php-equivalent-for-java-triple-des-encryption-decryption,php-equivalent-encryption-decryption-tripledes,php-encrypt-decrypt-with-tripledes-pkcs7-和-ecb)。感谢您的任何帮助或指导!
我只能将 3DES 与 CBC 一起使用。
PHP代码:
php - TRIPLE DES encryption/decryption using php
I have this TRIPLE DES ENCRYPTION CODE IN PHP
Im able to encrypt the data as xcFEvIdLXc2fjhG1i4iPOQu5L6ahxwZVucDOPqeMM2E=
Now I have the key,will I able to decrypt this data to plain text format?
I tried it this way
But I couldnt do it.IS what I am doing is wrong?Please suggest me a way to decrypt this?Is the encryption key itself is used to decrypt the data in triple DES?Please help