[英]How can I encrypt a string in JavaScript and decrypt that string in C#
我之前已經看到過這個問題,但在這些情況下,海報想要在面向公眾的網站上加密某些內容(通常是網址),而且回復主要是“不要!”。 然而,在我的情況下,JavaScript將存儲在非公共內部系統中,所以我認為我有更多的余地。 類似問題的一個例子是: 如何在javascript中加密url並在c#中解密 - 並且答案實際上沒有回答問題。
我的“JavaScript”實際上是“SuiteScript”,其定義為“SuiteScript是一種基於JavaScript的API,可讓開發人員擴展NetSuite”,其中NetSuite是托管的CRM軟件包,因此用於加密我的字符串的任何編碼都將是隱藏給每個人,除了我公司的員工(因此被認為安全隱藏)。
我想做的是:
我已經google了搜索stackoverflow,但沒有發現任何文章或答案,提供了兩種技術都可以使用的加密方法的明確說明。 有人有這樣的指示嗎?
最簡單的方法是使用庫作為Stanford Javascript加密庫來實現標准(在本例中為AES)並在C#中使用相同的密碼(通過AesManaged
或AesCryptoServiceProvider
)。
您將獲得一個對稱密碼,但幾乎不會有一個參數(密鑰)設置為兩個庫工作。
您也可以使用非對稱(公鑰)密碼。 獲取javascript代碼的攻擊者可以將精心設計的請求發送到您的服務器,但無法攔截其他請求。
在javascript中有一個RSA實現, RSACryptoServiceProvider
類在.Net中提供支持
Code項目中提供了一個完整的示例,包括javascript lib中RSA的路徑以支持填充(在使用.Net實現時是必需的)
這兩種解決方案本身都很容易重放(攻擊者攔截一個字符串並稍后將其發送回服務器 - 可能多次)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.