我米試圖通過JSON發送加密數據到客戶端和客戶端解密使用cryptojs使用解密cryptojs不工作
我ROR代碼
def getkey
aes = OpenSSL::Cipher::Cipher.new('AES-128-CBC')
aes.encrypt
key = aes.random_key
session[:key] = key
render :json => {:mkey => Base64.encode64(key).gsub(/\n/, '')}
end
def getdata
js = "SOME DATA"
aes = OpenSSL::Cipher::Cipher.new('AES-128-CBC')
aes.encrypt
aes.key = session[:key]
encrypted = aes.update(js) + aes.final
encrypted = Base64.encode64(encrypted).gsub(/\n/, '')
render :json => {:data => encrypted}
end
我的JavaScript代碼
var key = btoa(BASE64_ENCODED_KEY);
$http({method: 'GET', url: '/appi/getdata/', params: {SOME_PARAMS}})
.success(function(data, status, headers, config) {
var dat = btoa(data.data);
var decrypted = CryptoJS.AES.decrypt(dat, key);
console.log(decrypted.toString(CryptoJS.enc.Utf8));
});
獲取javascript錯誤「錯誤:格式錯誤的UTF-8數據。」在鉻
下面是簡化的jsfiddle一個網址上面的查詢
decrypted.toString(CryptoJS.enc.Utf8)爲我工作。我正在使用decrypted.toString()。反正感謝.... –
@sudesh這似乎是一個problem..Think CryptoJs着加密JSON objects..Canü請幫助me..I我得到了同樣的問題 – Catmandu
@sudesh我只是on Rails開發環境得到。 。 – Catmandu