在MVC中, 我使用过jquery模板。它返回ID,我已经设置了一个ID传递的链接。但我想使用服务器端功能加密该ID。
{#template PAYMENTLINK}
<li class="scale-list-1">
<a href="javascript:;" onclick="PaymentUrl({$T.PackageId});">Pay</a>
</li>
{#/template PAYMENTLINK}
答案 0 :(得分:0)
加密和解密我们在解决方案中使用的方法。您需要的只是id.ToString(),cause方法获取字符串作为输入
public string Decrypt(string inputValue)
{
byte[] inputEquivalent = Convert.FromBase64String(inputValue.Replace(" ", "+"));
using (var memoryStream = new MemoryStream())
{
using (
var cryptoStream = new CryptoStream(memoryStream, this.CryptoProvider.CreateDecryptor(), CryptoStreamMode.Write))
{
cryptoStream.Write(inputEquivalent, 0, inputEquivalent.Length);
cryptoStream.FlushFinalBlock();
cryptoStream.Close();
return new UTF8Encoding().GetString(memoryStream.ToArray());
}
}
}
/// <summary>
/// Gets the encrypted text.
/// </summary>
/// <param name="inputValue">The input value.</param>
/// <returns>Encrypted string</returns>
public string Encrypt(string inputValue)
{
using (var memoryStream = new MemoryStream())
{
using (
var cryptoStream = new CryptoStream(memoryStream, this.CryptoProvider.CreateEncryptor(), CryptoStreamMode.Write))
{
byte[] toEncrypt = new UTF8Encoding().GetBytes(inputValue);
cryptoStream.Write(toEncrypt, 0, toEncrypt.Length);
cryptoStream.FlushFinalBlock();
byte[] ret = memoryStream.ToArray();
cryptoStream.Close();
memoryStream.Close();
return Convert.ToBase64String(ret);
}
}
}