signData.html 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>智能密码卡国密中间件</title>
  8. <script src="./js/mTokenPlugin/base64.js"></script>
  9. <script src="./js/mTokenPlugin/mToken.js"></script>
  10. <script src="./js/mTokenPlugin/hunca_mToken_core.js"></script>
  11. <link href="css/bootstrap.css" rel="stylesheet">
  12. <style>
  13. body {
  14. margin: 0px 0px auto;
  15. }
  16. .nav {
  17. width: auto;
  18. margin: 0px auto;
  19. text-align: center;
  20. }
  21. .head {
  22. width: 950px;
  23. margin: 0px auto;
  24. }
  25. .content {
  26. width: 1200px;
  27. margin: 0px auto;
  28. text-align: center;
  29. margin-top: 40px;
  30. }
  31. </style>
  32. <script>
  33. var mToken = new hunca_mToken_core();
  34. function enumDevice() {
  35. var devList = "";
  36. var selectDev = null;
  37. selectDev = document.getElementById("optionDevList");
  38. selectDev.options.length = 0;
  39. devList = mToken.Hunca_GetUserList(); //枚举Ukey,获取证书G项信息列表
  40. if (null == devList || devList.length == 0) {
  41. alert(mToken.Hunca_GetLastError());
  42. return false;
  43. }
  44. addOption(devList, selectDev, 1);
  45. return false;
  46. }
  47. function signData() {
  48. var data = "你好";
  49. var password = "";
  50. var userName = "";
  51. var selectDev = null;
  52. var index = 0;
  53. var startTime,endTime;
  54. selectDev = document.getElementById("optionDevList");
  55. if (selectDev.length == 0) {
  56. alert('请插入Ukey,点击“刷新”按钮')
  57. return false;
  58. }
  59. index = selectDev.selectedIndex;
  60. password = document.getElementById("password").value;
  61. userName = selectDev.options[index].text;
  62. startTime = new Date().getTime();
  63. if (!mToken.Hunca_PKCS1(data, userName, password)) {
  64. alert(mToken.Hunca_GetLastError());
  65. return false;
  66. }
  67. document.getElementById("ca_signData").value = mToken.Hunca_GetSignData();
  68. document.getElementById("ca_cert").value = mToken.Hunca_GetSignCert();
  69. console.log(mToken.Hunca_GetSignData());
  70. console.log(mToken.Hunca_GetSignCert());
  71. alert("签名成功!");
  72. return false;
  73. }
  74. //动态添加option选项
  75. function addOption(optionStr, selectID, flag) {
  76. if (flag == 1) {
  77. for (var i = 0; i < optionStr.length; ++i)
  78. selectID.options.add(new Option(optionStr[i], i));
  79. }
  80. if (flag == 2) {
  81. for (var i = 0; i < optionStr.length; ++i) {
  82. selectID.options.add(new Option(optionStr[i][1], i));
  83. }
  84. }
  85. }
  86. </script>
  87. </head>
  88. <body>
  89. <embed id="id_mPluginV2Router" type="application/mPluginV2Router" width="0" height="0" />
  90. <object id="mTokenPlugin" width="0" height="0">
  91. <param value="pluginLoaded" />
  92. </object>
  93. <div class="head">
  94. <img src="">
  95. </div>
  96. <div class="nav">
  97. <h2>智能密码卡国密中间件(系统登陆)</h2>
  98. <h3>(基于随机数的数字签名实现数字证书登录)</h3>
  99. </div>
  100. <div class="content" style="width: 720px">
  101. <form class="form-horizontal" method="POST">
  102. <div class="form-group">
  103. <label class="col-sm-2 control-label col-md-offset-1">证书名称:</label>
  104. <div class="col-sm-6">
  105. <select id="optionDevList" class="form-control"></select>
  106. </div>
  107. <div class="col-sm-2">
  108. <button class="btn btn-default" onclick="return enumDevice();">刷新</button>
  109. </div>
  110. </div>
  111. <div class="form-group">
  112. <label class="col-sm-2 control-label col-md-offset-1">设备密码:</label>
  113. <div class="col-sm-6">
  114. <input id="password" type="password" class="form-control">
  115. </div>
  116. <div class="col-sm-2">
  117. <input type="hidden" name="ca_signData" id="ca_signData">
  118. <input type="hidden" name="ca_cert" id="ca_cert">
  119. <button class="btn btn-primary" onclick="return signData();">登陆</button>
  120. </div>
  121. </div>
  122. </form>
  123. </div>
  124. </body>
  125. </html>