PHP怎么用模数和指数得到公钥进行RSA加密

键盘浪人 发布于 2017/09/18 09:39
阅读 606
收藏 0

已知16进制模数:C34E069415AC02FC4EA5F45779B7568506713E9210789D527BB89EE462662A1D0E94285E1A764F111D553ADD7C65673161E69298A8BE2212DF8016787E2F4859CD599516880D79EE5130FC5F8B7F69476938557CD3B8A79A612F1DDACCADAA5B6953ECC4716091E7C5E9F045B28004D33548EC89ED5C6B2C64D6C3697C5B9DD3
和指数:10001
请问用php怎么用16进制的模数和已知指数才能得到公钥进行RSA加密???

问题详细描述:
是这样,由于业务需求,需要用php Curl进行站点模拟登录,而别人的站点,是对pwd密码进行了rsa加密传到后台的,如果我要curl模拟登录的话,必须也要把密码进行rsa加密模拟post提交上去。其中该站点登录页面的pwd加密是在前端js RSA加密的,其中看到有2个隐藏域,一个是16进制的字符串(可看出是模数),然后还有一个是类似于10001数字字符串(可看出是指数),他的js RSA加密算法如下:

<body>
    <!--RSA加密-->
    <script src="../../javascript/RSA/Barrett.js?versions=19" type="text/javascript"></script>
    <script src="../../javascript/RSA/RSA.js?versions=19" type="text/javascript"></script>
    <script src="../../javascript/RSA/BigInt.js?versions=19" type="text/javascript"></script>
    <!---->
    <div>
        <input type="hidden" name="Modulus" id="ModulusID" value="B1AEB985675327181ACBE9B4E74F3424F157AC81B88CE92988408C16EAB77190EA4EB740F255A2206049457B54158BA775B61CE0A97568E55B606138AA5FE5B8A123CD27E6E1BCA469051420817807EE69F73D6B87D474EFC5AA40CB9715FE7BD1E22DE542D90F7E021F39B5F377E021AB84B0068B9614250484A20A3900E8FB">
        <input type="hidden" name="Exponent" id="ExponentID" value="10001">

        <input name="pwd" type="password" id="pwd" placeholder="请输入密码" maxlength="19">
    </div>
    
    <script>
       $(function () {
        var uPwd = $("#pwd").val().trim(); //密码
       //rsa加密
        setMaxDigits(129);
        var key = new RSAKeyPair($("#ExponentID").val(), "", $("#ModulusID").val());
        var uPwd2 = encryptedString(key, $.trim(uPwd));//加密后密码传到后台登录
       //rsa加密 end
        var parameter = { uName: $("#uname").val(), uPwd: udPwd2};
       $.ajax({
            type: "POST",
            url: "login.do",
            dataType: 'json',
            data: parameter,
            cache: false,
            error: function () {
                alert("系统异常,请联系客服咨询!");
            },
            success: function (msg) {
                if (msg == "" || msg == null) {
                    alert("系统异常,请联系客服咨询!" + msg);
                    return;
                }
                if (msg.status == 0) {
                    alert("登录成功!");
                    window.location.reload();
                    return;
                }else {
                   alert('登录失败'.msg);
                    return;
                }

            }
        });
       });
    </script>
</body>

如上几段代码是前端给登录密码加密主要片段。其中js RSA加密是用的:ohdave.com/rsa/ 这网站的,因为现在要php curl模拟登录别的站,我的思路是先通过curl获取两个ModulusID和ExponentID这2个隐藏域的值,然后通过php跟如上js rsa加密一样给密码加密,然后post登录。现在问题是,我在php后端怎么才能像如上片段js RSA加密一样给密码RSA加密。求救

加载中
0
游戏研究师
游戏研究师

可以这样:你在本地新建个页面,js引用和 和数据全部给人家的一样,然后有加密后的RSA数据了,就提交到后台,后台再curl模拟传到他们网站上,不懂加我QQ2996475653

游戏研究师
游戏研究师
PHP能做到,你要知道js 加密的算法才行,不知道的话,只能引用他们的 js了。
键盘浪人
键盘浪人
有没有办法,完全用php跟如上js代码一样方式?
0
键盘浪人
键盘浪人

有大牛会吗。一个问题问了大半个月。

0
回去干活
回去干活

看看你是要搞哪个网站我了解一下

0
开源中国首席罗纳尔多
开源中国首席罗纳尔多

webservice的soap开发是什么意思?还要写soap协议吗?直接用ais2开发出来的是soap的吗?

键盘浪人
键盘浪人
返回顶部
顶部