程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#實現盛大盛付通充值卡狀態查詢,

C#實現盛大盛付通充值卡狀態查詢,

編輯:C#入門知識

C#實現盛大盛付通充值卡狀態查詢,


今天有這樣一需求,要求能夠查詢盛付通卡的狀態,官網如下 http://www.801335.com/status/index.htm

剛一打開網址,發現兩個輸入框加一個驗證碼,心中一喜不是小  case 驗證碼沒有粘貼也沒怎麼變形手到擒來,三五兩下識別做完了  正確率還不錯,90+%..

驗證碼做發了,開始抓包,一下就懵了,發現他的數據好像被加密了,先上一張圖

回過頭來後,仔細看了下他的界面,發現了貓膩,他卡號和密碼輸入的地方是 flash  UesTextInput-1.4.swf 文件名是這個,再看了看,他的  JS代碼發現關鍵的幾行

// 獲取加密Key
var encryptedKey = document.getElementById(swfObjId).GetKey($("#base64Cert").val());
$("#"+keyEleId).val(encryptedKey);
// 獲取加密數據
var encryptedData = document.getElementById(swfObjId).GetValue();
$("#"+dataEleId).val(encryptedData);

原來,他是通過  flash把輸入的文本加密後再賦值給 input 輸入框. 即然知道他的現實,我馬上就有思路了

方案一

C# 調用  flash 的Com組件來實現,通過模擬鍵盤來輸入卡號和密碼來實現加密並批量查.  具體的實現這裡不講了,

程序是跑起來了,但是發現一個問題.在多線程的情況下,flash加密存在一個問題,不能同步,沒辦法,你不同步我給你同步吧,加了一個同步機制,可以了沒問題了  一是一 二是二,但是同步後,查詢的速度下來了,差不多  1-2秒才能查一張卡,奶奶的受不了,還不如我手工查得快,沒辦法是 革命沒有成功,還是繼續

 

方案二

你不是用的flash加密嗎 你加密碼再厲害還不是在客戶端完成的,只要是在客戶端完成的 我就不信我拿你沒辦法,呵呵,  經過幾年的開發積累,什麼都沒有,有的就是積累的小工具, 

flash是吧,把我N年前有的 閃客精靈用上試下

 

比較古老的一個版本,沒關系,只要能派上有場就行....

 

歐啦 ,什麼出來了,現在要做的  就是  A3代碼轉成我們可愛 C#代碼,就一切搞定了

其實需要重寫的方法也只有兩個,剛才在上面就是JS調的那兩個

 

GetKey GetValue 就這兩個,重寫的代碼就不貼了,最後再上張軟件的效果圖

開  10個線程,速度槓槓的.............

 

--幸福海

博客地址:http://www.cnblogs.com/ningqhai/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved