成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > ASP.NET MVC結(jié)合JavaScript登錄、校驗(yàn)和加密

ASP.NET MVC結(jié)合JavaScript登錄、校驗(yàn)和加密

熱門(mén)標(biāo)簽:威力最大的電銷(xiāo)機(jī)器人 旅游地圖標(biāo)注線路 電話機(jī)器人鑰匙扣 400電話唐山辦理 地圖標(biāo)注位置怎么弄圖 廣西房產(chǎn)智能外呼系統(tǒng)推薦 漯河外呼調(diào)研線路 電銷(xiāo)專(zhuān)用外呼線路 電銷(xiāo)外呼系統(tǒng)是違法的嗎

最近閑來(lái)無(wú)事給自己寫(xiě)了家庭財(cái)務(wù)收支管理系統(tǒng),也就包含支出管理,收入管理和一些統(tǒng)計(jì)功能。

先說(shuō)登錄模塊,因?yàn)樯婕癎ET和POST請(qǐng)求,這些東西都是能被監(jiān)控和抓取的所以就考慮這使用RSA加密解密方式傳輸用戶(hù)名和密碼參數(shù),頁(yè)面JS如下: 

/*需要引入三個(gè)JS文件,BigInt.js、RSA.js和Barrett.js,用到cookie則需要引入jquery.cookie.js文件*/
//與后臺(tái)交互獲取公鑰
function getPublicKey() {
 var pubKey = '';
 if ($.cookie('publicKey') == null) {
  $.ajax({
   url: "/Account/GetRsaPublicKey",
   type: "get",
   contentType: "application/x-www-form-urlencoded; charset=utf-8",
   async: false,
   data: {},
   dataType: "json",
   success: function (data) {
    if (data.Code == 0) {
     pubKey = data.RsaPublicKey + "," + data.Key;
     $.cookie('publicKey', pubKey, { expires: 1 / 1440 });
    } else {
     Config.Method.JudgeCode(data, 1);
    }
   }
  });
 } else {
  pubKey = $.cookie('publicKey');
 }
 return pubKey;
}
//公鑰加密用戶(hù)密碼Pwd為RSA加密后參數(shù)
function rsaEncrypt(pwd) {
 var publicKey = getPublicKey();
 setMaxDigits(129);
 var rsaKey = new RSAKeyPair(publicKey.split(",")[0], "", publicKey.split(",")[1]);
 var pwdRtn = encryptedString(rsaKey, pwd);
 return pwdRtn + "," + publicKey.split(",")[2];
}
//POST登錄請(qǐng)求,參數(shù)
script type="text/javascript">
 $(function () {
  $('#btnSubmit').live('click', function () {
   var uName = $('#u').val();
   var pwd = $('#p').val();
   if (uName == '') {
    alert('用戶(hù)名不能為空');
    return;
   }
   if (pwd == '') {
    alert('用戶(hù)密碼不能為空');
    return;
   }
   var enPwd = rsaEncrypt(pwd);
   $.ajax({
    type: "POST",
    url: "/Account/UserLogin",
    data: { 'UserName': uName, 'Pwd': enPwd.split(",")[0], 'Key': enPwd.split(",")[1], 'RUrl': $('#hiddenUrl').val() },
    contentType: "application/x-www-form-urlencoded; charset=utf-8",
    async: false,
    dataType: "json",
    success: function (data) {
     if (data.result == true) {
      window.location.href = data.url;
      return false;
     } else {
      $('#msg').text(data.message);
     }
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
     $('#msg').text(XMLHttpRequest.status + '||' + XMLHttpRequest.readyState + '||' + textStatus);
    }
   });
  });
 })
/script>

前臺(tái)加密完成后就需要后臺(tái)做解密處理,解密完成后需要使用MD5加密現(xiàn)有密碼與數(shù)據(jù)庫(kù)中用戶(hù)密碼進(jìn)行比較驗(yàn)證,如果驗(yàn)證通過(guò)則需要寫(xiě)入cookie以便下次用戶(hù)能自   動(dòng)登錄,由于cookie中我不希望用戶(hù)名和密碼都明碼存儲(chǔ),我這里用到了AES加密的方式,自定義一個(gè)32位的加密密鑰對(duì)cookie進(jìn)行加密解密處理,后臺(tái)c#代碼如下:

[HttpPost]
  public JsonResult UserLogin(string UserName, string Pwd, string Key, string RUrl)
  {
   string privateKey = Common.CacheGet(Key) as string;
   if (!string.IsNullOrEmpty(privateKey))
   {
    if (string.IsNullOrEmpty(UserName))
    {
     return Json(new { result = false, message = "用戶(hù)名為空" }, JsonRequestBehavior.AllowGet);
    }
    if (string.IsNullOrEmpty(Pwd))
    {
     return Json(new { result = false, message = "用戶(hù)密碼為空" }, JsonRequestBehavior.AllowGet);
    }
    string pwd = Common.DecryptRSA(Pwd, privateKey);//私鑰解密
    string md5Pwd = Common.NoneEncrypt(Common.NoneEncrypt(Common.NoneEncrypt(pwd, 1), 1), 1);//將解密后的值md5加密3次
    AccountUnserInfo userInfo = bll.GetUserInfo(UserName.Trim(), md5Pwd);
    if (userInfo != null  userInfo.U_Id > 0)//用戶(hù)信息存在
    {
     //用戶(hù)名、密碼放入cookie
     HttpCookie cookie = new HttpCookie("fw_izz");
     //AES加密Cookie
     cookie["u_name"] = AesEncryptHelper.EncryptAes(UserName);
     cookie["u_pwd"] = AesEncryptHelper.EncryptAes(pwd);
     cookie.Expires = DateTime.Now.AddDays(7);
     Response.Cookies.Add(cookie);
     if (!string.IsNullOrEmpty(RUrl))//接收隱藏域中的值
     {
      return Json(new { result = true, message = "成功", url = RUrl });
     }
     else
     {
      return Json(new { result = true, message = "成功", url = "/AccountDetail/Index" });
     }
    }
    else
    {
     return Json(new { result = false, message = "用戶(hù)信息不存在", url = "/Account/Index" });
    }
   }
   else
   {
    return Json(new { result = false, message = "非法秘鑰", url = "/Account/Index" });
   }
  }

各種加密解密方法、Cache操作以及cookie操作代碼如下:  

public class Common
 {
  /// summary>
  /// 產(chǎn)生一組RSA公鑰、私鑰
  /// /summary>
  /// returns>/returns>
  public static Dictionarystring, string> CreateRsaKeyPair()
  {
   var keyPair = new Dictionarystring, string>();
   var rsaProvider = new RSACryptoServiceProvider(1024);
   RSAParameters parameter = rsaProvider.ExportParameters(true);
   keyPair.Add("PUBLIC", BytesToHexString(parameter.Exponent) + "," + BytesToHexString(parameter.Modulus));
   keyPair.Add("PRIVATE", rsaProvider.ToXmlString(true));
   return keyPair;
  }

  /// summary>
  /// RSA解密字符串
  /// /summary>
  /// param name="encryptData">密文/param>
  /// param name="privateKey">私鑰/param>
  /// returns>明文/returns>
  public static string DecryptRSA(string encryptData, string privateKey)
  {
   string decryptData = "";
   try
   {
    var provider = new RSACryptoServiceProvider();
    provider.FromXmlString(privateKey);

    byte[] result = provider.Decrypt(HexStringToBytes(encryptData), false);
    ASCIIEncoding enc = new ASCIIEncoding();
    decryptData = enc.GetString(result);
   }
   catch (Exception e)
   {
    throw new Exception("RSA解密出錯(cuò)!", e);
   }
   return decryptData;
  }

  private static string BytesToHexString(byte[] input)
  {
   StringBuilder hexString = new StringBuilder(64);

   for (int i = 0; i  input.Length; i++)
   {
    hexString.Append(String.Format("{0:X2}", input[i]));
   }
   return hexString.ToString();
  }

  public static byte[] HexStringToBytes(string hex)
  {
   if (hex.Length == 0)
   {
    return new byte[] { 0 };
   }
   if (hex.Length % 2 == 1)
   {
    hex = "0" + hex;
   }
   byte[] result = new byte[hex.Length / 2];
   for (int i = 0; i  hex.Length / 2; i++)
   {
    result[i] = byte.Parse(hex.Substring(2 * i, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
   }
   return result;
  }

  private static ObjectCache Cache
  {
   get { return MemoryCache.Default; }
  }
  /// summary>
  /// 獲取緩存
  /// /summary>
  /// param name="key">/param>
  /// returns>/returns>
  public static object CacheGet(string key)
  {
   return Cache[key];
  }
  /// summary>
  /// 設(shè)置緩存
  /// /summary>
  /// param name="key">/param>
  /// param name="data">/param>
  /// param name="cacheTime">/param>
  public static void CacheSet(string key, object data, int cacheTime)
  {
   CacheItemPolicy policy = new CacheItemPolicy();
   policy.AbsoluteExpiration = DateTime.Now + TimeSpan.FromMinutes(cacheTime);
   Cache.Add(new CacheItem(key, data), policy);
  }
  /// summary>
  /// 判斷緩存是否存在
  /// /summary>
  /// param name="key">/param>
  /// returns>/returns>
  public static bool IsSet(string key)
  {
   return (Cache[key] != null);
  }
  /// summary>
  /// 緩存失效
  /// /summary>
  /// param name="key">/param>
  public static void CacheRemove(string key)
  {
   Cache.Remove(key);
  }
  /// summary>
  /// 對(duì)字符串進(jìn)行加密(不可逆)
  /// /summary>
  /// param name="Password">要加密的字符串/param>
  /// param name="Format">加密方式,0 is SHA1,1 is MD5/param>
  /// returns>/returns>
  public static string NoneEncrypt(string Password, int Format)
  {
   string strResult = "";
   switch (Format)
   {
    case 0:
     strResult = FormsAuthentication.HashPasswordForStoringInConfigFile(Password, "SHA1");
     break;
    case 1:
     strResult = FormsAuthentication.HashPasswordForStoringInConfigFile(Password, "MD5");
     break;
    default:
     strResult = Password;
     break;
   }
   return strResult;
  }
 }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • js實(shí)現(xiàn)登錄注冊(cè)框手機(jī)號(hào)和驗(yàn)證碼校驗(yàn)(前端部分)
  • JavaScript 完成注冊(cè)頁(yè)面表單校驗(yàn)的實(shí)例
  • JavaScript注冊(cè)時(shí)密碼強(qiáng)度校驗(yàn)代碼
  • js簡(jiǎn)單實(shí)現(xiàn)用戶(hù)注冊(cè)信息的校驗(yàn)代碼
  • JS校驗(yàn)與最終登陸界面功能完整示例
  • 詳解AngularJs HTTP響應(yīng)攔截器實(shí)現(xiàn)登陸、權(quán)限校驗(yàn)
  • Angular.js與node.js項(xiàng)目里用cookie校驗(yàn)賬戶(hù)登錄詳解
  • jsp登陸校驗(yàn)演示 servlet、login、success
  • 攔截JSP頁(yè)面,校驗(yàn)是否已登錄詳解及實(shí)現(xiàn)代碼
  • javascript使用正則表達(dá)式實(shí)現(xiàn)注冊(cè)登入校驗(yàn)

標(biāo)簽:湘西 綏化 焦作 湖北 試駕邀約 無(wú)錫 銅陵 欽州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET MVC結(jié)合JavaScript登錄、校驗(yàn)和加密》,本文關(guān)鍵詞  ASP.NET,MVC,結(jié)合,JavaScript,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET MVC結(jié)合JavaScript登錄、校驗(yàn)和加密》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于ASP.NET MVC結(jié)合JavaScript登錄、校驗(yàn)和加密的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产成人无码www免费视频播放| 欧美激情啪啪| 日韩你懂的在线播放| 欧美人与禽性xxxxx杂性| 精品国产美女a久久9999| 欧美日韩精品在线观看| av观看免费| 欧美天堂一区二区三区| 在线观看黄色小视频| 中文字幕在线国产精品| 一级毛片免费高清中文字幕久久网| 少妇荡乳情欲办公室456视频| 性生活视频网址| 欧美在线中文| 亚洲人被黑人高潮完整版| 无码内射中文字幕岛国片| 老司机精品导航| 狠色狠色综合久久| 午夜男人天堂| 成人v精品蜜桃久久一区| 九9re精品视频在线观看re6| 国产精品麻豆va在线播放| 亚洲aⅴ怡春院| 欧美日韩极品在线观看一区| 久久91亚洲| 色综合手机在线| 99久久999| 亚洲人成人无码网www国产| 日日干日日操日日射| 新婚的少妇hd中文字幕| 精品久久久久久无码国产| 国产精品一区二区三区免费| 亚洲黄色成人网| 四季av一区二区凹凸精品| 成人毛片18女人毛片| 亚洲欧美视频在线| 亚洲一区二区三区黄色| 亚洲精品韩国| 成人欧美视频在线观看播放| 国产v综合v亚洲欧| 欧美成人一区二区在线| 午夜伊人狠狠久久| 国产成人av一区二区三区不卡| 美国黄色特级片| 日韩不卡一区| 欧美性色黄在线视频| yiren22综合网成人| 欧美日韩久久久| 日本一区二区三区www| 欧美午夜久久久| 亚洲天堂手机在线| 人与动物性xxxx| 99久久综合国产精品| 一道本成人在线| 日韩精品久久| 国产毛片精品国产一区二区三区| 成人网站免费观看入口| 一区二区在线免费视频| 高清在线一区二区| 在线一区av| 99精品欧美一区| 国产精品成人一区二区三区吃奶| 欧美一区免费视频| 精品中文字幕一区二区小辣椒| 成人福利小视频| 久久久男人天堂| 亚洲经典视频在线观看| 国产一级中文字幕| 国产aaa精品| 成人精品视频.| 日韩熟女一区二区| 天海翼在线观看视频| 亚洲欧美激情网| 美女的诞生在线观看高清免费完整版中文| 深爱五月激情五月| 777午夜精品免费视频| 99蜜月精品久久91| 女王人厕视频2ⅴk| 狠狠色伊人亚洲综合网站色| 国产在视频线精品视频| 精品一区二区三区久久久| 一本到三区不卡视频| 日韩高清影视在线观看| 韩国三级成人在线| 女人十八毛片嫩草av| 夜色福利资源站www国产在线视频| 欧美一区二区国产| 日韩在线不卡视频| 欧美肥妇bbwbbw| 天天爽天天爽夜夜爽| 欧美成人中文字幕| 国产成人无码aa精品一区| 久久精品国产**网站演员| 色噜噜国产精品视频一区二区| h视频免费在线观看| 国产伦精品一区二区三区视频| 亚洲欧美二区三区| 国产肥白大熟妇bbbb视频| 亚州av中文字幕在线免费观看| 国产日韩专区在线| www.日韩.com| 色图欧美色图| 亚洲一二在线观看| 亚洲同性同志一二三专区| 一本一道久久a久久精品逆3p| 欧美日韩中文字幕| 国产一级二级在线观看| 国产三级精品三级在线观看| 一区二区三区在线视频播放| 一区二区国产在线| 亚洲女人的天堂| 婷婷国产成人精品视频| 黄色的视频在线观看免费| 久久精品美女| 亚洲欧洲午夜一线一品| 久久久久国产一区二区三区四区| www在线观看播放免费视频日本| 狠狠入ady亚洲精品经典电影| 99久久99精品| 天天躁日日躁狠狠躁喷水| 亚洲摸下面视频| 亚洲国产精品尤物yw在线观看| 可以在线看的av网站| 久久丁香综合五月国产三级网站| 欧美精品入口蜜桃| 日本高清不卡免费| 久久丝袜视频| 一区二区免费播放| 久久精品视频99| 久久婷婷亚洲| 国产毛片久久久久久久| 国产精品99免视看9| 美脚丝袜一区二区三区在线观看| 亚洲成人一级片| 成人爽a毛片一区二区| 欧美综合亚洲图片综合区| 91精彩视频在线播放| 中文字幕精品久久久久| 亚洲欧美日韩国产中文| 好吊日在线视频| 色五月激情五月| 91浏览器在线视频| 国产欧美日韩精品高清二区综合区| 久久久精品免费| 亚洲精品久久7777| 国产精品―色哟哟| 国产伦精品一区二区三区在线观看| 日韩毛片免费视频一级特黄| 狠狠做六月爱婷婷综合aⅴ| 色老头一区二区三区在线观看| 免费国产a级片| 国产成人亚洲综合小说区| 一本之道在线视频| 中文字幕成人乱码在线电影| sese在线视频| 免费精品视频一区| 欧美 日韩 国产一区| 欧美日韩三区四区| 自拍偷拍欧美专区| 欧美一二三四区在线| 精品视频在线观看| 日韩成人动漫在线观看| www日本在线观看| 日韩伦理一区二区三区| 久久精品国产精品亚洲精品色| 国产精品第七十二页| 久久精品国产亚洲av香蕉| 日韩欧美电影在线| 国产va在线观看| 欧美私人网站| 精品视频vs精品视频| 影音先锋日韩精品| 日本h片在线| 欧美激情二区| 欧美激情一区二区三区不卡| 欧美日韩色视频| 亚洲自拍偷拍视频| 在线一区二区视频| 国产香蕉在线视频| 欧美国产精品va在线观看| 成人黄色免费看| 亚洲精品乱码久久久久久自慰| 99久久一区三区四区免费| gogogo影视剧免费观看在线观看| 牛牛国产精品| 免费亚洲网站| 99久久免费国产精品| 精品久久久久久久久久岛国gif| 亚洲天堂福利av| 欧美一区三区二区在线观看| 韩日欧美一区| 美女少妇精品视频| 日日狠狠久久偷偷四色综合免费| 一区二区三区在线资源| 精品免费国产一区二区| 狠狠操狠狠干视频| 黄色免费电影网站| 欧美精品久久99| 激情欧美一区二区三区中文字幕| 日本中文字幕亚洲| 一本色道久久综合狠狠躁的番外| 一级黄色毛毛片| 秋霞在线一区二区| 色哦色哦哦色天天综合| 欧美在线一级视频| 午夜精品一区二区三区av| 台湾佬成人中文网222vvv| 久久精品国产成人一区二区三区| 欧美自拍偷拍一区| 久99九色视频在线观看| 只有精品亚洲| 日本不卡免费高清视频在线| 天堂久久一区二区三区| 国产精品电影久久久久电影网| 日韩av资源在线| 国语对白做受69| 天堂久久午夜av| 91视频精品| 欧美性色黄大片手机版| 国产成人精选| eeuss影院www免费视频| 日韩av在线播放不卡| 黄色污污视频在线观看| 美女网站在线| 欧美男人的天堂| 麻豆精品国产传媒| 欧美性xxxxxx| av一区二区三区四区电影| 国产精品天美传媒沈樵| 黄色网址大全在线观看| 久久精品一二三区| 国产99久久精品一区二区300| 欧美剧在线免费观看网站| 日本久久精品电影| jizz蜜桃视频在线观看| 在线视频1区| 国产一级在线观看www色| 亚洲男人天堂av网| 欧美日韩另类国产亚洲欧美一级| 日本午夜精品理论片a级appf发布| 国内精品视频| 精品欧美一区二区精品久久| 欧美亚洲tv| 青青青国产在线视频| 色婷婷综合久久久中文字幕| 欧美放荡办公室videos4k| 亚洲人成网站999久久久综合| 不卡一区2区| 91精品少妇一区二区三区蜜桃臀| 亚洲美女福利视频| 欧美办公室脚交xxxx| 巨人精品**| 国产成人久久精品一区二区三区| av免费在线一区二区三区| 日韩欧美一区二区三区久久| 极品尤物av丝袜美腿在线观看| 啪一啪鲁一鲁2019在线视频| 26uuu亚洲婷婷狠狠天堂| 亚洲欧美久久234| 在线看片网址| 嫩草在线视频| 欧美aa国产视频| 中文在线第一页| 国产一区玩具在线观看| 99这里只有精品视频| 日韩中文字幕亚洲一区二区va在线| 国模叶桐国产精品一区| 一区二区三区国产免费| 6080yy午夜一二三区久久| 黄色网址入口| 热久久久久久久| 福利视频导航网| 一本大道久久精品懂色aⅴ| 欧洲精品一区二区三区| 久久机热这里只有精品| 亚洲日本中文字幕| 色网站国产精品| 国产精品传媒入口麻豆| 欧美午夜美女看片| 超碰97在线免费| 精品国产亚洲av麻豆| 九色porny视频国产网曝| 免费看日b视频| 99视频精品在线| 欧美丝袜一区二区三区| 波多野结衣国产精品| 你懂的在线观看视频| 综合免费一区二区三区| 在线观看不卡的av| 在线观看精品视频一区二区三区| 色中色综合影院手机版在线观看| 国产日韩精品suv| 中国女人内谢69xxxx视频| 99精品视频网| 欧美一区二区三区免费大片| 成人在线免费公开观看视频| 丝袜美腿亚洲一区二区图片| 亚洲午夜极品| 啪啪免费视频一区| 国内揄拍国内精品少妇国语| 国产精品特级毛片一区二区三区| 欧美三区在线视频| 欧美国产综合视频| 欧美大片1688网站| 成人无码www在线看免费| 久久先锋资源网| 久久草视频在线| av不卡在线免费观看| 亚洲精品在线视频| 天使と恶魔の榨精在线播放| 久久综合九色综合欧美就去吻| 国产成人久久精品77777| 99re视频| 欧美日韩伦理片| 日本免费高清视频| 亚洲综合一区中| 欧美精品国产精品日韩精品| 亚洲妇熟xxxx妇色黄| 欧美日韩一区二区三区在线电影| 美女爽到呻吟久久久久| 尤物视频在线观看网站| 欧美99久久| 日韩欧美国产精品综合嫩v| 91欧美精品成人综合在线观看| 日韩欧美福利视频| 不卡av一区二区| 亚洲a视频在线观看| www.日韩在线|