我现在想实现一个这样的功能,以前我用ASP调用JS做的密码加密,注册的用户名在数据库中都是加密好的,现在我重新用asp.net做好了一个系统,但我应该如何调用JS中的加密算法来实现对我的控件文本框传递的值的加密?
我现在我给出我调用的JS代码:
<SCRIPT language=javascript runat="server">
function stoi41(str)
{
... ...
}
return a
</SCRIPT>
---------------------------------------------------------------
    以上就是我调用的JS加密代码,我的数据库中的都是用以上代码加好密的,请问我应该怎样在c#.net的CS文件中中调用这段代码,实现密码比对功能??

解决方案 »

  1.   

    在c#里面
    public string return_value()
    {
     
      return string
    }在js里面function stoi41(<%=return_value()%>)
    {}
      

  2.   

    请问在CS代码里面如何调用我的这一段独立的JS代码??
      

  3.   

    求求各位了,真的很急啊!我在ASP里面加密是这样的:
    <SCRIPT language=javascript runat="server">
    function stoi41(str)
    {
    ... ...
    }
    return a
    </SCRIPT>
    -------------------------------------------------------------------
    <%=i41tos(rs("shop_name"))%>我在c#.net中应该如何实现以上这一段代码呢??给大家跪下了,555555555555555555555~~分少了可以加的啊!!!!!!
      

  4.   

    <input type=hidden id="pass" runat="server">
    js:
    var obj = document.getElementbyId("pass");
    obj.value = stoi41(str);
    aspx.cs
    string str = pass.value
      

  5.   

    请问楼上的:您的思路是这样吗?
    在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
      

  6.   

    还有在CS中,关于JS的命名空间有哪些要引用?还有<input type=hidden id="pass" runat="server">
    这个隐藏域虽然返回在服务器端,
    但他不像某些控件有protected System.Web.UI.WebControls.TextBox text;这样的定义。
    我在CS代码中应该怎样定义pass?
    等待hdt(倦怠) 的回答
      

  7.   

    现在已经了解了思路了,但是
    var obj = document.getElementbyId("pass");
    obj.value = stoi41(str);
    加上就会在左下角有个叹号,而且PASS也没值。不加又没有叹号了。。
      

  8.   

    关注中,楼主解决了麻烦贴出来
    也就是
    如何在asp.net过程中调用面页的过程如
    asp.net
    button_click(send e)
    {
        string c=strvalue("b");  strvalue("b")为页面js
    }
    js:
    function strvalue(value)
    {
       value=value+"1";
       return value;
    }谢谢
      

  9.   

    JS页中加上
    var obj = document.getElementbyId("pass");
    obj.value = stoi41(str);就这两句有问题了,加了左下方就有个出错的叹号,不加就没有,不知道各位大侠还有什么办法吗???
      

  10.   

    敢问楼主干吗不用NET自带的加密类?
      

  11.   

    我以前是用ASP做的网页,数据库里已经有加密的数据了。
      

  12.   

    <SCRIPT language=javascript runat="server">
    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);
    我应该怎么加??
      

  13.   

    楼主的问题有点迷糊,如果是:
    --------------------------------------
    关注中,楼主解决了麻烦贴出来
    也就是
    如何在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();
    }
    就可以了。
    ------------------------------
      

  14.   

    我就直接复制进头里面,提示打不到此属性或方法。
    (原来在这段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);页面左下角就会出现个出错的叹号。郁闷的不行。
    如果还没有人来帮我,只有新开贴了。
      

  15.   

    还是把源代码贴出来吧,如果你把var obj = document.getElementbyId("pass");
    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 />就可以了
      

  16.   

    楼上的加上runat="server"我已经试过的,发现错误提示为:
    由于先前已在此页中指定了另一种语言,因此不能使用“javascript”。
      

  17.   

    <SCRIPT language=javascript runat="server">
    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这一段。网上的方法试了一圈,都是不灵。楼上的也试了一圈。总有错误
    哪位大侠如果真的要帮帮我,请像我这样详细列出步骤,谢谢各位了。。
      

  18.   

    还有Onange="stoi41()"这个真的行吗?有没有不用按钮点击触发直接加载的??