php rijndael,C#中的PHP MCRYPT_RIJNDAEL_128加密

使用PHP加密/解密:

class Cipher {

private $key, $iv;

function __construct() {

$this->key = "edrtjfjfjlldldld";

$this->iv = "56666852251557009888889955123458";

}

function encrypt($text) {

$block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

$padding = $block - (strlen($text) % $block);

$text .= str_repeat(chr($padding), $padding);

$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->key, $text, MCRYPT_MODE_CBC, $this->iv);

return base64_encode($crypttext);

}

function decrypt($input) {

$dectext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->key, base64_decode($input), MCRYPT_MODE_CBC, $this->iv);

return $dectext;

}

}

使用C#加密/解密:

public class RijndaelSimple

{

const string iv = "56666852251557009888889955123458";

const string key = "edrtjfjfjlldldld";

static public String EncryptRJ256(string plainText)

{

var encoding = new UTF8Encoding();

var Key = encoding.GetBytes(key);

var IV = encoding.GetBytes(iv);

byte[] encrypted;

using (var rj = new RijndaelManaged())

{

try

{

rj.Padding = PaddingMode.PKCS7;

rj.Mode = CipherMode.CBC;

rj.KeySize = 256;

rj.BlockSize = 256;

rj.Key = Key;

rj.IV = IV;

var ms = new MemoryStream();

using (var cs = new CryptoStream(ms, rj.CreateEncryptor(Key, IV), CryptoStreamMode.Write))

{

using (var sr = new StreamWriter(cs))

{

sr.Write(plainText);

sr.Flush();

cs.FlushFinalBlock();

}

encrypted = ms.ToArray();

}

}

finally

{

rj.Clear();

}

}

return Convert.ToBase64String(encrypted);

}

static public String DecryptRJ256(string input)

{

byte[] cypher = Convert.FromBase64String(input);

var sRet = "";

var encoding = new UTF8Encoding();

var Key = encoding.GetBytes(key);

var IV = encoding.GetBytes(iv);

using (var rj = new RijndaelManaged())

{

try

{

rj.Padding = PaddingMode.PKCS7;

rj.Mode = CipherMode.CBC;

rj.KeySize = 256;

rj.BlockSize = 256;

rj.Key = Key;

rj.IV = IV;

var ms = new MemoryStream(cypher);

using (var cs = new CryptoStream(ms, rj.CreateDecryptor(Key, IV), CryptoStreamMode.Read))

{

using (var sr = new StreamReader(cs))

{

sRet = sr.ReadLine();

}

}

}

finally

{

rj.Clear();

}

}

return sRet;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值