<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 72, comments - 66, trackbacks - 0, articles - 0

    有關強大的capicom的應用

    Posted on 2008-07-09 23:20 Fingki.li 閱讀(3505) 評論(7)  編輯  收藏 所屬分類: About security
    最近和capicom親密接觸了一下,感覺到它的強大,記錄以備后查.

    capicom是一個對windows來講非常重要的CryptoAPI.
    通過capicom你可以在你的應用中集成Public Key Infrastructure (PKI)功能:獲取證書庫,利用服務器證書簽名,加密數據.
    通過vbscript你可以輕松的調用它,當然,前提是你已經安裝了capicom.dll.
    注冊capicom.dll,打開cmd,轉到capicom.dll目錄下,執行:regsvr32 capicom.dll.(當然你也可以自己做個.msi來安裝)
    之后你就可以用各種腳本調用它的強大功能了
    以vbscript為例:
    拿到當前用戶的數字證書
    Const CAPICOM_MY_STORE = "My"
    Const CAPICOM_CURRENT_USER_STORE  = 2
    Const CAPICOM_STORE_OPEN_READ_ONLY = 0
    Dim oCert, oStore
    Set oStore = CreateObject ("CAPICOM.Store")
    if Err.Number <> 0 Then
       wscript.echo "CAPICOM NOT detected"
       Wscript.Quit(1)
    End if
    oStore.Open CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY
    For Each oCert in oStore.Certificates
       WScript.Echo "  Subject Name: " & oCert.SubjectName
            WScript.Echo "  Issuer Name: " & oCert.IssuerName
            WScript.Echo "  SHA-1 Thumbprint: " & oCert.Thumbprint
            WScript.Echo "  Serial Number: " & oCert.SerialNumber
            WScript.Echo "  Version: " & oCert.Version
            WScript.Echo "  Valid From: " & oCert.ValidFromDate
            WScript.Echo "  Valid To: " & oCert.ValidToDate
    Next
    上面這段代碼就是得到了當前用戶的所有數字證書.
    當然你也可以得當前機器上的,AD上的等.
    store = CreateObject ("CAPICOM.Store")將返回一個證書庫.
    可利用這個store的open()方法得到相應證書庫及其中的證書.
    .open ()語法為:
    .open(StoreLocationStoreName , OpenMode)
    StoreLocation :

        CAPICOM_ACTIVE_DIRECTORY_USER_STORE 3 得到AD上已經發布的證書
        CAPICOM_CURRENT_USER_STORE 2 得到當前用戶的證書
        CAPICOM_LOCAL_MACHINE_STORE 1 得到本地機器上的證書
        CAPICOM_MEMORY_STORE 0 得到內存中的證書
    StoreName :
        CAPICOM_MY_STORE "MY" 得到當前用戶證書與CAPICOM_CURRENT_USER_STORE配合使用
        "CN=your user name on domain" 得到指定用戶的證書,一般與CAPICOM_ACTIVE_DIRECTORY_USER_STORE配合使用.
    OpenMode:    
        CAPICOM_STORE_OPEN_READ_ONLY 0 只讀方法

    經常易出錯的地方是:以上這些常量在vbscript中并沒被預定義,使用前要自己定義一下.其值就是后面相應的數字.
    之前我就是以為這此常量是VBS預定義了,所以直接用,導致操作不成功,浪費了大量時間去找原因.
    當然,你也可以直接用相應數字代替這此常量.

    了解更多請參考:
    http://msdn.microsoft.com/en-us/library/aa388130.aspx
    http://207.46.196.114/windowsserver/en/library/8f918fdc-9841-48f9-a46d-28232742239a1033.mspx?mfr=true

    Feedback

    # re: 有關強大的capicom的應用  回復  更多評論   

    2008-09-23 09:51 by guogb
    為什么運行這個代碼頁面是空白呢?

    # re: 有關強大的capicom的應用  回復  更多評論   

    2008-09-23 10:41 by guogb
    證書已經導入了。

    # re: 有關強大的capicom的應用[未登錄]  回復  更多評論   

    2008-09-25 14:17 by Fingki.li
    @guogb
    運行vbs腳本文件

    # re: 有關強大的capicom的應用  回復  更多評論   

    2008-09-28 09:46 by guogb
    無法讀取MY里的證書 CA里的可以讀到 。我用ASP寫的

    # re: 有關強大的capicom的應用[未登錄]  回復  更多評論   

    2008-10-20 16:10 by Fingki.li
    @guogb
    檢查一下用到的常量值是否都預設置了。

    # re: 有關強大的capicom的應用  回復  更多評論   

    2008-12-04 13:52 by 水水
    我的證書都存放在USBKEY里,如果同時需要使用兩個,一個是登錄進去的用戶,操作時需要另一個用戶用KEY里的證書進行授權,應該怎么做?這時默認的就是第一個證書,不再出現彈出選擇證書的窗口了.
    先謝謝你,我的頭都大了.

    # re: 有關強大的capicom的應用  回復  更多評論   

    2008-12-12 16:39 by Fingki.li
    @水水
    在應用中完全可以讀出指定證書庫中的所有證書,然后應用。并且完全可以在你的應用軟件中加入重新導入證書功能。
    主站蜘蛛池模板: 日本免费一本天堂在线| 蜜桃视频在线观看免费网址入口| 国产国产人免费人成免费视频| 亚洲综合激情五月色一区| 99久久综合国产精品免费| 亚洲日产乱码一二三区别| 无码国模国产在线观看免费| 久久久亚洲精华液精华液精华液 | 亚洲国产精品一区二区久久hs | 一级毛片免费毛片一级毛片免费| 久久久久亚洲Av无码专| 三年片在线观看免费大全 | 中文字幕免费在线观看动作大片| 亚洲天堂电影在线观看| 99久久免费精品视频| 亚洲午夜国产精品| 国产男女猛烈无遮挡免费视频 | 亚洲午夜在线一区| 国产在线观看免费完整版中文版| 黄色免费网站在线看| 亚洲日韩精品无码专区网址| 91精品免费不卡在线观看| 亚洲中文字幕无码爆乳| 亚洲日本中文字幕| 成人网站免费观看| 亚洲欧洲日产国码www| 国国内清清草原免费视频99| 久久久久亚洲国产| 亚洲国产一级在线观看| 日韩人妻无码精品久久免费一| 亚洲成人高清在线观看| 四虎免费久久影院| 一级毛片免费毛片一级毛片免费| 亚洲人成激情在线播放| 亚洲精品线路一在线观看| 69av免费视频| 乱淫片免费影院观看| 亚洲视频在线观看地址| 亚洲精品国精品久久99热| 91麻豆最新在线人成免费观看 | 色www永久免费视频|