我有一种使用DES加密的C#加密方法。我需要在我创建的node.js应用程序接口中解密该值。我已经设法在api中重新创建了大部分的解密方法,但是当我传入要解密的秘密和值时,我得到了一个不同的结果。
Encryption.cs
public static string Encrypt(string toEncrypt, string key)
{
var des = new DESCryptoServiceProvider();
var ms = new MemoryStream();
des.Key = HashKey(key, des.KeySize / 8);
为什么const_DES_cblock input最多只能接受8个字母。例如,
const_DES_cblock input = "hehehehe"; // is fine
const_DES_cblock input = "hehehehehehehe"; // is giving warning: warning: initializer-string for array of chars is too long [enabled by default]
第一行代码可以很好地加密和解密。但是第二个只加密和解密前8个字母。什么是绕过它的方法?
我需要将XML数据写入加密文件。我可以读/写加密文件,但我不知道如何跳过文件输入部分,而是从MemoryStream对象开始。
这就是我到目前为止所拥有的。基本上,我只需要得到一个Byte[],在上面执行我的标准加密。
我很感谢你这么棒的投入。我将很快对此进行测试。
编辑:在测试之后,当我尝试关闭memorystream对象时,我得到了一个“无法访问关闭的流”异常。
MemoryStream ms = new MemoryStream();
XmlTextWriter xmlwriter = new XmlTextWriter(ms,Encoding.ASCII);
FileStream En
我试图使用KeyStore加载的des密钥加密,我得到:
Exception in thread "main" java.security.InvalidKeyException: No installed provider supports this key: sun.security.pkcs11.P11Key$P11SecretKey
at javax.crypto.Cipher.chooseProvider(Cipher.java:878)
at javax.crypto.Cipher.init(Cipher.java:1213)
at java
它似乎混淆了Triple-DES (>128位)和普通DES (64位)。我正在尝试使用Java1.5用Triple DES (或DESede)加密Derby数据库
我偶然发现了这个,所以检查它是否真的使用了DESede,而不是普通的DES。当我使用Triple DES (168bit) URL创建数据库时
jdbc:derby:MySecureDB;dataEncryption=true;encryptionAlgorithm=DESede/CBC/NoPadding;bootPassword=$ecureC@deCanBr@kE0074242
我仍然可以打开它,并使用(纯) DES
我正在尝试实现AES 256位加密/解密算法。我意识到这种算法有多种模式。
Every implementation of the Java platform is required to support the following standard Cipher transformations with the keysizes in parentheses:
AES/CBC/NoPadding (128)
AES/CBC/PKCS5Padding (128)
AES/ECB/NoPadding (128)
AES/ECB/PKCS5Padding (128)
DES/CBC/NoPadd