Option Explicit
Dim sSecretData
sSecretData = "Here is some very secret data."
' Build up the key
Dim wshNetwork, sComputerName
Set wshNetwork = WScript.CreateObject("WScript.Network")
sComputerName = wshNetwork.ComputerName
Dim capEData
Set capEData = CreateObject("CAPICOM.EncryptedData")
capEData.Algorithm = 3 'Use 3DES
capEData.SetSecret sComputerName
capEData.Content = sSecretData
Dim sCipherText
sCipherText = capEData.Encrypt
capEData.Algorithm = 3
capEData.SetSecret sComputerName
capEData.Decrypt sCipherText
Dim sPlainText
sPlainText = capEData.Content
MsgBox "Original data: " & sSecretData & chr(13) _
& "Encrypted data: " & sCipherText & chr(13) _
& "Recoverd data: " & sPlainText
1
A
回答
4
這個更簡單:關鍵只是計算機名,算法是衆所周知的。所以每個人都可以找到你的計算機名稱(這包括同一臺交換機上的每個人,即使他的PC已經被盜用,並且根據你的郵件系統發送郵件的每個人都可以無限制地解密)。
如果您的PC崩潰了,並且您給了您的新安裝一個不同的名稱,那麼您的運氣也不好。
編輯
正如從討論:有一個硬編碼關鍵,有反編譯且在同一時間祕密關鍵是不可能的。
你的方法(使用一些不同於計算機的東西)是相當好的,但是你應該依賴某些東西,不能像計算機名稱(或MAC地址...)那樣輕易地讀取它。想到處理器序列號或Windows產品ID - 兩者都不容易被遠程讀取,但請記住,如果有人能夠訪問此機器,則遊戲結束!
+0
如果我需要在代碼中使用此密鑰並將其保密,可以使用什麼「密鑰」? – CJ7
+0
更新了我的答案。 –
相關問題
- 1. 彙編代碼。加密解密例程
- 2. 使用TripleDES加密解密密碼
- 3. 使用Jasypt加密和解密密碼
- 4. 使用php加密和解密密碼
- 5. 使用Spring的密碼加密/解密
- 6. 使用node.js加密/解密密碼
- 7. C++加密和解密源代碼
- 8. 解密時C#加密代碼出錯!
- 9. AES加密和解密的源代碼
- 10. PHP加密代碼解釋
- 11. PHP - 解密加密密碼
- 12. 密碼加密/解密
- 13. 加密和解密密碼
- 14. .NET中的密碼加密/解密代碼
- 15. 如何解密JavaScript代碼?
- 16. 如何解密LUA代碼?
- 17. 是否可以解密使用「IonCube」加密加密的文件?
- 18. 使用DirectCompute進行AES加密/解密的示例代碼
- 19. 數據庫加密和數據庫解密使用C#代碼
- 20. 解密密碼相反ASCII代碼的多個位置
- 21. SAML斷言解密使用Java代碼
- 22. 使用CFB 128位AES加密對數據進行加密/解密的代碼
- 23. 使用GPG加密代碼
- 24. 從密鑰代碼解析密鑰
- 25. 如何解密加密密碼?
- 26. 在已編譯的C或C++代碼中加密密碼
- 27. JSP代碼解密dbms_obfuscation_toolkit.DESEncrypt oracle
- 28. 解密導軌3代碼?
- 29. 解密代碼錯誤
- 30. SSL_read解密錯誤代碼
這聽起來像你正試圖實施某種DRM系統。 DRM的第一個法則是它不起作用:如果用戶的計算機可以解碼數據,那麼用戶可以爲自己獲取數據。 –