|
求教LR7.8中获得https网页中认证随机数的方法,
我record了个https网页,要做模拟真实的登陆压力测试,发现必须要取得网页上的几个认证产生的随机数,小弟第一次坐这个,不知道怎么搞,那位大大介绍一个方法。下面是我从该页面源码中看到的随机数信息:
<script languang="javascript">
function doSubmit()
{
WARNING_DATE = 30; //CA证书的警告提示预警天数
if(!(document.userform.username.value != "" && document.userform.pwd.value != "" && document.userform.passwd.value != ""))
{
alert("用户名、密码和证书密码不能为空!");
return false;
}
SafeEngineCtl.SEH_InitialSession(2,"c:\\cfets\\UserKey.key",document.userform.passwd.value,0,2,"c:\\cfets\\CertChain.spc","");
if(SafeEngineCtl.ErrorCode!=0)
{
if(SafeEngineCtl.ErrorCode == -2113667069)
alert("CA Private Key Password is incorrect");
else
{
alert("SEH_InitialSession Error. Return:" + SafeEngineCtl.ErrorCode + "\n您可能没有安装证书,请您点击确定,进入下载证书页面!谢谢!");
window.location="userlogin/downcert.html";
}
return false;
}
/* 获取自己证书 */
strCert = SafeEngineCtl.SEH_GetSelfCertificate(2, "c:\\cfets\\UserCert.der", "");
if(SafeEngineCtl.ErrorCode != 0)
{
alert("SEH_GetSelfCertificate Error. Return:" + SafeEngineCtl.ErrorCode);
return false;
}
document.userform.sCert.value = strCert;
/* 验证服务器证书 */
SafeEngineCtl.SEH_VerifyCertificate("MIIFSTCCBLagAwIBAgIDEwBPMAkGBSsOAwIdBQAwggEaMQ0wCwYDVQQGHgQAQwBOMWswaQYDVQQKHmIAQwBoAGkAbgBhACAARgBvAHIAZQBpAGcAbgAgAEUAeABjAGgAYQBuAGcAZQAgAFQAcgBhAGQAZQAgAFMAeQBzAHQAZQBtACAARQBsAGUAYwB0AHIAbwBuAGkAYwAgAEMAQTEPMA0GA1UECB4GTgptd14CMSUwIwYDVQQDHhwAQwBGAEUAVABTAEUAQwBBACAAUwB1AGIAYwBhMQ8wDQYDVQQHHgZOCm13XgIxGTAXBgNVBBAeEE4tXHFOHE4Aje8AMQA1U/cxFTATBgNVBBEeDAAyADAAMAAwADAAMjEhMB8GA1UEFB4YADAAMgAxACAANgAzADIAOQA4ADkAOAA4MB4XDTA2MDcyNTAwMDAwMFoXDTA3MDcyNTAwMDAwMFowbDEOMAwGA1UEChMFQ0ZFVFMxDjAMBgNVBAsTBUNGRVRTMQwwCgYDVQQIEwMzMTAxFTATBgNVBAMTDDIwMC4zMS40NC4xMTElMCMGCSqGSIb3DQEJARYWdGVjaEBjaGluYW1vbmV5LmNvbS5jbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAt8t8WNvZ6BaiCnzAzYtuIMyp9pltANruoSX8ULc1uAOeh2i3LQ7qjc+MZC3REl43UEsmniPDiw1IlvAnKJmA0Iy31Gw00n1vq0A0EIs/1KzBEryQWoPrIR46eDbBY2idc/1wKwI+scJYKlPR8Z/CKoHJNyaCoiJvTmni0MazuI8CAwEAAaOCAk8wggJLMEkGA1UdIARCMEAwPgYIKoEcAcU4gRUwMjAwBggrBgEFBQcCARYkaHR0cDovL2VjYS5jaGluYW1vbmV5LmNvbS5jbi9wb2xpY3kvMAsGA1UdDwQEAwIE0DAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIFYDCBzgYDVR0fBIHGMIHDMC2gK6AphidsZGFwOi8vMjAwLjMxLjUwLjMxOjM4OS9yYTIwMDEvQ1JMMS5jcmwwU6BRoE+GTWxkYXA6Ly8yMDAuMzEuNTAuMzE6Mzg5L291PXJhMjAwMSxvdT1zaGVjYSBjcmwsbz1zaGVjYS5jb20/P1NVQj8oY249Q1JMMS5jcmwpMD2gO6A5hjdodHRwOi8vMjAwLjMxLjUwLjMxL3NoZWNhLmNvbS9zaGVjYV9jcmwvcmEyMDAxL0NSTDEuY3JsMIIBAAYGKoEcAcU4BIH1MIHyMBwGCCqBHAHFOIEUBBAyMDAuMzEuNDQuMTE6NDQzMCkGCCqBHAHFOIERBB1odHRwOi8vZWNhLmNoaW5hbW9uZXkuY29tLmNuLzAlBggqgRwBxTiBEgQZb2NzcDovLzIwMC4zMS41MC4zNToxODAyMTAjBggqgRwBxTiBEAQXbGRhcDovLzIwMC4zMS41MC4zMTozODkwSgYIKoEcAcU4gRcEPmxkYXA6Ly8yMDAuMzEuNTAuMzE6Mzg5L291PVNoZWNhIENlcnRpZmljYXRlIENoYWluLG89c2hlY2EuY29tMA8GCCqBHAHFOIETBAM3NzIwCQYFKw4DAh0FAAOBgQAlR3zWo4k4geJ1BVktqkY6azouJu58onG7dqutaBjenVUO8ZJyLEVodrjK2pJyWU5ZRqn0hKqN8GP2ZQR+sCZMYONyMCB/1nSJV19KQVmFRNN6neznqU6TOJcOXk7iU9iVKy1UO4i46xZEAKHTrC7AFJZenjKxVZX1s2lWZHu0hA==");
if(SafeEngineCtl.ErrorCode!=0)
{
if(-2113667054 == SafeEngineCtl.ErrorCode)
alert("验证服务器证书错误: 有效期外");
else
alert("验证服务器证书错误:" + SafeEngineCtl.ErrorCode);
SafeEngineCtl.SEH_ClearSession();
return false;
}
/* 签名随机数 */
strSigned = SafeEngineCtl.SEH_SignData("494834_RANDOM", 3);
if(SafeEngineCtl.ErrorCode!=0)
{
alert("SEH_SignData Error. Return:" + SafeEngineCtl.ErrorCode);
SafeEngineCtl.SEH_ClearSession();
return false;
}
document.userform.sSign.value = strSigned;
/* 用服务器证书加密随机数 */
strEnvelope = SafeEngineCtl.SEH_Envelope(1, "494834_RANDOM", "MIIFSTCCBLagAwIBAgIDEwBPMAkGBSsOAwIdBQAwggEaMQ0wCwYDVQQGHgQAQwBOMWswaQYDVQQKHmIAQwBoAGkAbgBhACAARgBvAHIAZQBpAGcAbgAgAEUAeABjAGgAYQBuAGcAZQAgAFQAcgBhAGQAZQAgAFMAeQBzAHQAZQBtACAARQBsAGUAYwB0AHIAbwBuAGkAYwAgAEMAQTEPMA0GA1UECB4GTgptd14CMSUwIwYDVQQDHhwAQwBGAEUAVABTAEUAQwBBACAAUwB1AGIAYwBhMQ8wDQYDVQQHHgZOCm13XgIxGTAXBgNVBBAeEE4tXHFOHE4Aje8AMQA1U/cxFTATBgNVBBEeDAAyADAAMAAwADAAMjEhMB8GA1UEFB4YADAAMgAxACAANgAzADIAOQA4ADkAOAA4MB4XDTA2MDcyNTAwMDAwMFoXDTA3MDcyNTAwMDAwMFowbDEOMAwGA1UEChMFQ0ZFVFMxDjAMBgNVBAsTBUNGRVRTMQwwCgYDVQQIEwMzMTAxFTATBgNVBAMTDDIwMC4zMS40NC4xMTElMCMGCSqGSIb3DQEJARYWdGVjaEBjaGluYW1vbmV5LmNvbS5jbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAt8t8WNvZ6BaiCnzAzYtuIMyp9pltANruoSX8ULc1uAOeh2i3LQ7qjc+MZC3REl43UEsmniPDiw1IlvAnKJmA0Iy31Gw00n1vq0A0EIs/1KzBEryQWoPrIR46eDbBY2idc/1wKwI+scJYKlPR8Z/CKoHJNyaCoiJvTmni0MazuI8CAwEAAaOCAk8wggJLMEkGA1UdIARCMEAwPgYIKoEcAcU4gRUwMjAwBggrBgEFBQcCARYkaHR0cDovL2VjYS5jaGluYW1vbmV5LmNvbS5jbi9wb2xpY3kvMAsGA1UdDwQEAwIE0DAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIFYDCBzgYDVR0fBIHGMIHDMC2gK6AphidsZGFwOi8vMjAwLjMxLjUwLjMxOjM4OS9yYTIwMDEvQ1JMMS5jcmwwU6BRoE+GTWxkYXA6Ly8yMDAuMzEuNTAuMzE6Mzg5L291PXJhMjAwMSxvdT1zaGVjYSBjcmwsbz1zaGVjYS5jb20/P1NVQj8oY249Q1JMMS5jcmwpMD2gO6A5hjdodHRwOi8vMjAwLjMxLjUwLjMxL3NoZWNhLmNvbS9zaGVjYV9jcmwvcmEyMDAxL0NSTDEuY3JsMIIBAAYGKoEcAcU4BIH1MIHyMBwGCCqBHAHFOIEUBBAyMDAuMzEuNDQuMTE6NDQzMCkGCCqBHAHFOIERBB1odHRwOi8vZWNhLmNoaW5hbW9uZXkuY29tLmNuLzAlBggqgRwBxTiBEgQZb2NzcDovLzIwMC4zMS41MC4zNToxODAyMTAjBggqgRwBxTiBEAQXbGRhcDovLzIwMC4zMS41MC4zMTozODkwSgYIKoEcAcU4gRcEPmxkYXA6Ly8yMDAuMzEuNTAuMzE6Mzg5L291PVNoZWNhIENlcnRpZmljYXRlIENoYWluLG89c2hlY2EuY29tMA8GCCqBHAHFOIETBAM3NzIwCQYFKw4DAh0FAAOBgQAlR3zWo4k4geJ1BVktqkY6azouJu58onG7dqutaBjenVUO8ZJyLEVodrjK2pJyWU5ZRqn0hKqN8GP2ZQR+sCZMYONyMCB/1nSJV19KQVmFRNN6neznqU6TOJcOXk7iU9iVKy1UO4i46xZEAKHTrC7AFJZenjKxVZX1s2lWZHu0hA==");
if(SafeEngineCtl.ErrorCode!=0)
{
alert("SEH_Envelope(Enc) Error. Return:" + SafeEngineCtl.ErrorCode);
SafeEngineCtl.SEH_ClearSession();
return false;
}
document.userform.sEnvelope.value = strEnvelope;
/* 判断证书过期时间并提示 */
strExpiredDate = SafeEngineCtl.SEH_GetCertDetail(strCert,12);
today = new Date();
expiredDate = new Date(strExpiredDate.substring(0,4),strExpiredDate.substring(5,6),strExpiredDate.substring(7,8));
remainDays = (expiredDate.getYear()*365 + (expiredDate.getMonth()+1)*30 + expiredDate.getDate()) -
(today.getYear()*365 + (today.getMonth()+1)*30 + today.getDate());
if(remainDays <= WARNING_DATE)
alert("您的证书大约" + remainDays + "天后过期,请注意升级");
/* 获取自己证书的唯一标识
strUuid = SafeEngineCtl.SEH_GetCertUniqueID(2, "c:\\cfets\\UserCert.der", "");
if(SafeEngineCtl.ErrorCode != 0)
{
alert("SEH_GetCertUniqueID Error. Return:" + SafeEngineCtl.ErrorCode);
return false;
}
document.userform.sUuid.value = strUuid;
*/
/* 释放 */
SafeEngineCtl.SEH_ClearSession();
return true;
}
</script>
[ 本帖最后由 Darkcoming 于 2006-9-2 14:16 编辑 ] |
|