vb点虐 des加密 vbs如何加密

前端jsp登录密码加密为des3加密方法

*_*?我是谁

创新互联公司2013年开创至今,是专业互联网技术服务公司,拥有项目网站制作、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元莫力达做网站,已为上家服务,为莫力达各地企业和个人服务,联系电话:18982081108

原创

关注

0点赞·757人阅读

%@ page contentType="text/html;charset=GBK"%

%@ page language="锋拿java" import="java.util.regex.*,

com.excellence点抗 mon.OAConstant,

com.excellence点抗 mon.UserInfo,

java.util.*,

java.text.SimpleDateFormat," %

html

head

titleXX系统/title

meta http-equiv="Content-Type" content="text/html; charset=gb2312"

link rel="stylesheet" href="/common/styles/default/default.css" type="text/css"

/head

script language="javascript"

/script

script language="JavaScript" src="/oa/javascripts/crypto-js.js"/script

body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0"

center

/center

/body

script type="text/vbscript"

Function str2asc(strstr)

str2asc = hex(asc(strstr))

End Function

Function asc2str(ascasc)

asc2str = chr(ascasc)

End Function

/script

script

%

UserInfo userInfo = (UserInfo) request.getSession().getAttribute("userInfo ");

String account="";

//获取用户账号

if(userInfo.getAccount()!=null!"".equals(userInfo.getAccount()))

account=userInfo.getAccount();

//有效期:格式:yyyy-MM-dd HH:mm:ss 有效期不能设置超过10分钟

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date now = new Date();

Date date = new Date(now .getTime() + 600000);

String time = df.format(date);

%

//sessionid = base64(DES(用户账号有效期))

//DES key:67HT4WrP

var sessionId = "%=account%" + "" + "%=time%";

var mykey = "67HT4WrP";

// DES加密模式:CBC模式/ECB模式

// CBC模银返搭式加密

function encryptCBC(text, textKey) {

// 密钥转成16进制的字符串

var key = CryptoJS.enc.Utf8.parse(textKey);

// 加密过程

var encrypted = CryptoJS.DES.encrypt(text, key, {

// iv偏移量为key值

iv: key,

// 模式为CBC

mode: CryptoJS.mode.CBC,

// DES加密padding为Pkcs7

padding: CryptoJS.pad.Pkcs7

});

// 加密返回为字符串密文(加密经过一次base64加密,结果可看结果)

return encrypted.toString();

}

//对字世念符串中的特殊字符进行UrlEncode转码

function UrlEncode(str){

var ret="";

var strSpecial="!\"#$%'()*+,/:;=?[]^`{|}~%";

var tt= "";

for(var i=0;istr.length;i++){

var chr = str.charAt(i);

var c=str2asc(chr);

tt += chr+":"+c+"n";

if(parseInt("0x"+c) 0x7f){

ret+="%"+c.slice(0,2)+"%"+c.slice(-2);

}else{

if(chr==" ")

ret+="+";

else if(strSpecial.indexOf(chr)!=-1)

ret+="%"+c.toString(16);

else

ret+=chr;

}

}

return ret;

}

//对sessionid进行加密

var desPass=encryptCBC(sessionId,mykey);

//对加密的sessionid中的特殊字符转码

var desPassEncode=UrlEncode(desPass);

//URL格式:;appid=5t7i9e260w6f41b71rt7fd07h9qo9800redirectUrl=~/Portals/Views/Test/index.html

var url=""+desPassEncode+"appid=5t7i9e260w6f41b71rt7fd07h9qo9800redirectUrl=~/Portals/Views/Test/index.html";

window.close();

window.open(url);

/script

/html

登录后复制

注意事项:

1、crypto-js.js使用到了这个js,要记得引入,很多地方可以下载的,除了这里面能用到des加密,也可以从网上找其他的des加密脚本,但是因为des加密模式的问题,要注意调用函数时参数的使用,确定自己要使用的是哪种des加密方法。

2、因为这里实现的是自动登录,涉及到了url的处理,由于使用了加密,密文中会含有特殊字符,直接通过url转跳,要把url中含有的特殊字符进行UrlEncode转码。

3、注意这里des的加密方式,这样进行转跳,跳进去的网站是点虐 实现的,因为des的加密模式有几种,java,点虐 等默认的des加密模式有可能不一致,就会导致加密后的密文不一样,所以要确定自己使用哪种模式,或者直接输出加密密文来进行比较。

4、使用js比较方便的地方是因为我这里用的jsp页面,所以对处理的数据可以任意写,而且不会影响后台的使用,我觉得这是js的好处,特别是进行像这种进行类似单点登录,自己系统用的java实现,而别人用的点虐 ,直接用脚本,可以节省时间,不会对自己系统造成什么影响。

5、有一个地方要注意,这里对url进行转码时,使用到了VB脚本的一些函数,这种脚本已经很少有人会用了,而且有些浏览器已经不支持了,百度显示ie11不支持,但是我自己的电脑就是ie11,可以使用,所以这个也不是绝对的,有可能和使用到的函数有关。

6、除了des加密,还有md5,单独的base64加密,这些常用的加密方式,都可以直接用js脚本实现。

7、这里只有des的一种加密模式,还有其他的,crypto-js.js中都有,可以百度下其他加密方法的使用!

求VB.NET的MD5算法调用

下面是完整的类,可以设置任意密码

'DES及md5加密解密----添加引用中添加对system.web的引用。

Imports System.Security.Cryptography

Imports System

Imports System.Text

Imports System.Web

''' summary

''' DES加密类

''' /summary

''' remarks/remarks

Public Class DESEncrypt

Public Sub DESEncrypt()

End 闷带Sub

Public Shared Function Encrypt(ByVal Text As String) As String

Return Encrypt(Text, "12345678")

End Function

Public Shared Function Encrypt(ByVal Text As String, ByVal sKey As String) As String

Dim des As New DESCryptoServiceProvider()

Dim inputByteArray As Byte()

inputByteArray = Encoding.Default.GetBytes(Text)

des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8))

des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8))

Dim ms As New System.IO.MemoryStream()

Dim cs As New CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write)

cs.Write(inputByteArray, 0, inputByteArray.Length)

cs.FlushFinalBlock()

Dim ret As New StringBuilder()

Dim b As Byte

For Each b In ms.ToArray()

ret.AppendFormat("{0:X2}", b)

斗罩搜    Next

Return ret.ToString()

End Function

Public Shared Function Decrypt(ByVal Text As String) As String

Return Decrypt(Text, "12345678")

End Function

Public Shared Function Decrypt(ByVal Text As String, ByVal sKey As 空历String) As String

Dim des As New DESCryptoServiceProvider()

Dim len As Integer

len = Text.Length / 2

Dim inputByteArray(len - 1) As Byte

Dim x, i As Integer

For x = 0 To len - 1

i = Convert.ToInt32(Text.Substring(x * 2, 2), 16)

inputByteArray(x) = CType(i, Byte)

Next

des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8))

des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8))

Dim ms As New System.IO.MemoryStream()

Dim cs As New CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write)

cs.Write(inputByteArray, 0, inputByteArray.Length)

cs.FlushFinalBlock()

Return Encoding.Default.GetString(ms.ToArray())

End Function

End Class

'以下是调用方法

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '加密

Dim str_Encrypt As String = DESEncrypt.Encrypt("你要加密的文本,可以是任意长度", "密码,可以很长,如果省略这个参数就是默认的12345678")

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '解密

Dim str_Decrypt As String = DESEncrypt.Decrypt("你要解密的文本, 可以是任意长度", "加密时用到的密码,如果省略这个参数就是默认的12345678")

End Sub

vb点虐 怎么用加密狗

1、安装加密狗驱动程序:下载加密狗驱动程序,安装到计算机中。

2、导入加密桥帆狗类库:在vb点虐 程序扰橘中,导入加密狗类库,可以使用加密狗类库中的API函数。

3、调用API函数:调用加密狗类库中的API函数,实现与加密狗的缓消团交互,实现加密狗的功能。


网站栏目:vb点虐 des加密 vbs如何加密
网址分享:http://scyanting.com/article/ddpopgi.html