2011-04-21 76 views

回答

4

我有一个Javascript实现的DES/TripleDES。它执行CBC和ECB模式,并且填充的 支持PKCS7,空格或零。它集成了符合RFC2898的PBKDF2,因此如果您愿意,它可以从密码生成加密密钥和IV。您也可以明确设置加密密钥和IV。

直接从Javascript调用 - 任何浏览器,Rhino或WScript.exe,或者更接近您的案例,使用Javascript的传统ASP,它都可用。

我也包装它作为一个COM组件,因此它可以从任何符合COM环境调用它,如VBScript中传统的ASP或Perl,或VBA跑步等

这是一个独立的实现,并且完全符合并且与.NET DESCryptoServiceProvider和TripleDESCryptoServiceProvider互操作。

从这里下载: http://cheeso.members.winisp.net/srcview.aspx?dir=DES

当直接从JavaScript调用它,它看起来像这样:

var pbkdf2 = new PBKDF2(password, salt, iterations); 
var key = pbkdf2.deriveBytes(8); // use 24 for 3DES 
var iv = pbkdf2.deriveBytes(8); // always 8 (==blocksize) 
var des = new DES(key,iv); 
var plaintext = "Hello. This is a test. of the emergency broadcasting system."; 
var ciphertext = des.encrypt(plaintext); 

当调用从VBScript中的COM组件,它看起来像这样:

Dim des 
set des = CreateObject("Ionic.Com.DES") 
des.Password = "This is my password" 
des.Mode = "CBC" 
des.TripleDES = True 
des.Rfc2898Iterations = 1000 
Dim result 
result = des.EncryptString(plainText) 
Dim decrypted 
decrypted = des.DecryptBytes(result) 
WScript.echo "decrypted  : " & decrypted 

加密非常快,但密钥生成不是。


编辑:

你也可以使用JavaScript DES东西在浏览器中。
这里是一个例子:http://jsbin.com/oguye3

+1

嗨切西奥,你有任何工作链接http://cheeso.members.winisp.net/srcview.aspx?dir=DES ?.提前致谢 – 2014-11-20 14:32:53

0

我会尝试使用微软的CAPICOM。 SDK中包含的示例可以帮助您进行滚动。

老概述:

http://msdn.microsoft.com/en-us/library/ms995332.aspx

CAPICOM SDK:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=860ee43a-a843-462f-abb5-ff88ea5896f6

你想看看就设在这里我机器上的例子:

C: \ Program Files(x86)\ Microsoft CAPICOM 2.1.0.2 SDK \ Samples \ html \ EncryptedData.htm

+0

此链接可能也有帮助。 http://forums.asp.net/t/1229037.aspx – joebarbere 2011-04-21 22:48:50