我现在想实现一个这样的功能,以前我用ASP调用JS做的密码加密,注册的用户名在数据库中都是加密好的,现在我重新用asp.net做好了一个系统,但我应该如何调用JS中的加密算法来实现对我的控件文本框传递的值的加密?
我现在我给出我调用的JS代码:
<SCRIPT language=javascript runat="server">
function stoi41(str)
{
... ...
}
return a
</SCRIPT>
---------------------------------------------------------------
以上就是我调用的JS加密代码,我的数据库中的都是用以上代码加好密的,请问我应该怎样在c#.net的CS文件中中调用这段代码,实现密码比对功能??
我现在我给出我调用的JS代码:
<SCRIPT language=javascript runat="server">
function stoi41(str)
{
... ...
}
return a
</SCRIPT>
---------------------------------------------------------------
以上就是我调用的JS加密代码,我的数据库中的都是用以上代码加好密的,请问我应该怎样在c#.net的CS文件中中调用这段代码,实现密码比对功能??
解决方案 »
- 如何实现asp.net二级联动无刷新效果?
- unable to find a version of the runtime to run this application
- 求助:~~ CS0246: 找不到类型或命名空间名称“ProfileCommon”(是否缺少 using 指令或程序集引用?)
- 大家来帮帮我吧:我要做一个时实检控系统(用图形表现出来),在.net平台上,可以用哪些工具?
- ◆◆如何传递1组SQL参数◆并在存储过程中遍历?◆◆ ◆◆
- 调用IE的打印功能的时候。打印出来的纸下面是有网址的。。。怎么把这个去掉?
- 请问关于页面绑定值。。。
- ===>典型的多层开发中关于数据库记录到实体映射的问题
- 关于在DataGrid_ItemCommand事件中无法获取单元格内控件的值?
- 在IE里打开服务器上的一个Word文件,请问:如何在线编辑完word之后,把编辑好的文件保存到服务器上,而不是保存到本地机?
- js 问题。 急
- 请问有没有人整合过sharepoint和自己开发的系统?
public string return_value()
{
return string
}在js里面function stoi41(<%=return_value()%>)
{}
<SCRIPT language=javascript runat="server">
function stoi41(str)
{
... ...
}
return a
</SCRIPT>
-------------------------------------------------------------------
<%=i41tos(rs("shop_name"))%>我在c#.net中应该如何实现以上这一段代码呢??给大家跪下了,555555555555555555555~~分少了可以加的啊!!!!!!
js:
var obj = document.getElementbyId("pass");
obj.value = stoi41(str);
aspx.cs
string str = pass.value
在ASPX页中
<SCRIPT language=javascript runat="server">
function stoi41(str)
{
... ...
}
return a
</SCRIPT><input type=hidden id="pass" runat="server">
----------------------------------------------
JS页中加上
var obj = document.getElementbyId("pass");
obj.value = stoi41(str);
------------------------------------------------
代码页中请问
我需要先把JS页
Load
Response.Write("<script language='javascript'>stoi41(str);</script>");
这样加载吗?
然后才是您说的:string str = pass.value
?
这个隐藏域虽然返回在服务器端,
但他不像某些控件有protected System.Web.UI.WebControls.TextBox text;这样的定义。
我在CS代码中应该怎样定义pass?
等待hdt(倦怠) 的回答
var obj = document.getElementbyId("pass");
obj.value = stoi41(str);
加上就会在左下角有个叹号,而且PASS也没值。不加又没有叹号了。。
也就是
如何在asp.net过程中调用面页的过程如
asp.net
button_click(send e)
{
string c=strvalue("b"); strvalue("b")为页面js
}
js:
function strvalue(value)
{
value=value+"1";
return value;
}谢谢
var obj = document.getElementbyId("pass");
obj.value = stoi41(str);就这两句有问题了,加了左下方就有个出错的叹号,不加就没有,不知道各位大侠还有什么办法吗???
var sdf3;
sdf3="09XY26Z!74ABC58DIJK@E3QfRFGH1NOLMSTUVW#$*";
function stoi41(str){;var t="";var a,a1,a2,a3;var b=sdf3.split("");for(var x=0;x<str.length;x++){a=str.charCodeAt(x)
a1=a%41;a=(a-a1)/41;a2=a%41;a=(a-a2)/41;a3=a%41;t+=b[a3]+b[a2]+b[a1]}a="z";for(var x=0;x<t.length;x+=3){if(t.charAt(x)!="A"){return t}a+=t.substr(x+1,2)}return a}function i41tos(str){;var a1,a2,a3,b=sdf3,d=0,t,a;if(str.charAt(0)=="z"){t=new Array(Math.floor((str.length-1)/2))
a=t.length;for(var x=0;x<a;x++){d++;a2=b.indexOf(str.charAt(d))
d++;a3=b.indexOf(str.charAt(d))
t[x]=a2*41+a3}};else{t=new Array(Math.floor(str.length/3))
a=t.length;for(var x=0;x<a;x++){a1=b.indexOf(str.charAt(d))
d++;a2=b.indexOf(str.charAt(d))
d++;a3=b.indexOf(str.charAt(d))
d++;t[x]=a1*1681+a2*41+a3}}
a=eval("String.fromCharCode("+t.join(',')+")");return a}
</SCRIPT>
---------------------------------------------
这一段是我的加密代码,请问
var obj = document.getElementbyId("pass");
obj.value = stoi41(str);
我应该怎么加??
--------------------------------------
关注中,楼主解决了麻烦贴出来
也就是
如何在asp.net过程中调用面页的过程如
asp.net
button_click(send e)
{
string c=strvalue("b"); strvalue("b")为页面js
}
js:
function strvalue(value)
{
value=value+"1";
return value;
}
------------------------
这种的话可以这样
在aspx页面创建一个<asp:TextBox runat=server id="tbTest" style="display:none"/>
(设置一个样式隐藏他,还可以吧长宽设置为1px )
执行脚本把加密的值赋给这个TextBox,注意脚本应该在textbox的后面执行
<script language='javascript'>
//设置tbTest 的值为加密值
var tbTest=document.getElementById("tbTest");
if (tbTest!=null)
{
//应该保证你的strvalue 加密函数的脚本已经引用进来
tbTest.value=strvalue(tbTest.value);
}
</script>
------
在服务端(cs里面)
button_click(send e)
{
string c=tbText.Text.Trim();
}
就可以了。
------------------------------
(原来在这段JS是在jia_min.asp的里面
<script language="javascript" src="inc/jia_min.js" runat="server">
function stoi41(str)
{... ...}
</script>
)是这样的,并且调用正常
后来我用.NET做的时候就用<script language="javascript" src="inc/jia_min.js" runat="server"></script>来调用,结果发现错误提示为:
由于先前已在此页中指定了另一种语言,因此不能使用“javascript”。
,
去掉JS页中runat="server"再在里面加上
var obj = document.getElementbyId("pass");
obj.value = stoi41(str);页面左下角就会出现个出错的叹号。郁闷的不行。
如果还没有人来帮我,只有新开贴了。
obj.value = stoi41(str)放到stoi41里面肯定有问题。
不如这样试试
<script language="javascript" src="inc/jia_min.js" runat="server">
function stoi41(str)
{... ...}
var obj = document.getElementbyId("pass");
if (obj==null)
{
alert("为空哦!")
}
else
{
obj.value = stoi41(str);
}
</script>
--------------
还有你的pass 不要用:<input type=hidden id="pass" runat="server">
直接用:<asp:TextBox id="pass" runat=server />就可以了
由于先前已在此页中指定了另一种语言,因此不能使用“javascript”。
var sdf3;
sdf3="09XY26Z!74ABC58DIJK@E3QfRFGH1NOLMSTUVW#$*";
function stoi41(str){;var t="";var a,a1,a2,a3;var b=sdf3.split("");for(var x=0;x<str.length;x++){a=str.charCodeAt(x)
a1=a%41;a=(a-a1)/41;a2=a%41;a=(a-a2)/41;a3=a%41;t+=b[a3]+b[a2]+b[a1]}a="z";for(var x=0;x<t.length;x+=3){if(t.charAt(x)!="A"){return t}a+=t.substr(x+1,2)}return a}function i41tos(str){;var a1,a2,a3,b=sdf3,d=0,t,a;if(str.charAt(0)=="z"){t=new Array(Math.floor((str.length-1)/2))
a=t.length;for(var x=0;x<a;x++){d++;a2=b.indexOf(str.charAt(d))
d++;a3=b.indexOf(str.charAt(d))
t[x]=a2*41+a3}};else{t=new Array(Math.floor(str.length/3))
a=t.length;for(var x=0;x<a;x++){a1=b.indexOf(str.charAt(d))
d++;a2=b.indexOf(str.charAt(d))
d++;a3=b.indexOf(str.charAt(d))
d++;t[x]=a1*1681+a2*41+a3}}
a=eval("String.fromCharCode("+t.join(',')+")");return a}
</SCRIPT>
这一段是我的加密代码~~还有,楼上的,这样的方法您真的试过了可行吗??还有楼上的楼上的楼上。我都试了。要不就是JS有问题。要不就是加载有问题。还有能否写得详细一些?我怎么调试都接收不到值啊~~
比如WEB窗体,我现在是这样的:
第一步<script language="javascript" src="inc/jia_min.js" >script>
第二步<input type=hidden id="pass" runat="server">
第三步<input type=text id="pwd" runat="server" Onange="stoi41()">
-----------------------------------------------------------------
JS里面
var pass = document.getElementbyId("pass");
pass.value = stoi41(str);
(这里我不知道应该怎么改,JS怎么写我不太明白。)
-----------------------------------------------------------------
CS里面:
第一步:加载Page.RegisterStartupScript("text","stoi41()");
按钮事件里面:string aa=pass.Value;
-------------------------------------------------------
上面这个JS是有用的。各位有兴趣可以复制过去试试。在ASP里面是好的。不过,在ASP里面一定要加runat="server"才能正常使用.
各位现在应该明白我的思路了,我现在的意思就是,想即时的把pwd这个文本框里面输入的值加密后再由JS传输给隐藏域,然后CS代码就直接string aa=隐藏域.
但我怎么取都不行。而且不管用Page.RegisterStartupScript("text","stoi41()");
还是Response.Write("<script language='javascript'>stoi41()</script>");
JS都是没有值传递到CS。我现在已经心灰意冷了。老板对我有意见了。
由其是CS跟JS这一段。网上的方法试了一圈,都是不灵。楼上的也试了一圈。总有错误
哪位大侠如果真的要帮帮我,请像我这样详细列出步骤,谢谢各位了。。