有关Java模拟RSA加密的登录

有一些网页前端的登录使用的是RSA加密方式,RSA加密中存在公钥和私钥,一般情况是在网页前端使用公钥将用户名和密码进行加密,在服务器端使用私钥进行解密。
实际使用中,通常将公钥分解为模数和指数,前端登录的过程一般如下:
1、用户在网页输入用户名和密码
2、提交表单后,网页会请求服务器,获取模数和指数
3、通过js脚本计算出公钥,并使用公钥对用户名和密码进行加密后,进行传输。

如果要模拟登录,就需要模拟RSA加密的过程:
1、通过抓包找到登录的实际请求路径,就是加密后数据的传输路径
2、抓包获取RSA加密的js脚本文件
3、在java中通过javax.script包下的ScriptEngine来调用js脚本,模拟计算公钥,并加密的过程。
主要代码片段如下:

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
try {
    engine.eval(new FileReader(filepath));
    engine.eval(js);
    return (String) engine.get("username");
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (ScriptException e) {
    e.printStackTrace();
}

你可能感兴趣的:(有关Java模拟RSA加密的登录)