您好,欢迎访问一九零五行业门户网

PHP、C#、通用的DES加密

php
class jodes { private static $_instance = null; /** * @return jodes */ public static function share() { if (is_null(self::$_instance)) { self::$_instance = new jodes(); } return self::$_instance; } /** * 加密 * @param string $str 要处理的字符串 * @param string $key 加密key,为8个字节长度 * @return string */ public function encode($str, $key) { $size = mcrypt_get_block_size(mcrypt_des, mcrypt_mode_cbc); $str = $this->pkcs5pad($str, $size); $aaa = mcrypt_cbc(mcrypt_des, $key, $str, mcrypt_encrypt, $key); $ret = base64_encode($aaa); return $ret; } /** * 解密 * @param string $str 要处理的字符串 * @param string $key 解密key,为8个字节长度 * @return string */ public function decode($str, $key) { $strbin = base64_decode($str); $str = mcrypt_cbc(mcrypt_des, $key, $strbin, mcrypt_decrypt, $key); $str = $this->pkcs5unpad($str); return $str; } function hex2bin($hexdata) { $bindata = ; for ($i = 0; $i strlen($text)) return false; if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return false; return substr($text, 0, - 1 * $pad); } }
c#
public class mydes { /// /// des加密方法 /// /// 明文 /// 密钥 /// 向量 /// 密文 public static string encode(string source, string _deskey) { stringbuilder sb = new stringbuilder(); using (descryptoserviceprovider des = new descryptoserviceprovider()) { byte[] key = asciiencoding.ascii.getbytes(_deskey); byte[] iv = asciiencoding.ascii.getbytes(_deskey); byte[] databytearray = encoding.utf8.getbytes(source); des.mode = system.security.cryptography.ciphermode.cbc; des.key = key; des.iv = iv; string encrypt = ; using (memorystream ms = new memorystream()) using (cryptostream cs = new cryptostream(ms, des.createencryptor(), cryptostreammode.write)) { cs.write(databytearray, 0, databytearray.length); cs.flushfinalblock(); encrypt = convert.tobase64string(ms.toarray()); } return encrypt; } } /// /// 进行des解密。 /// /// 要解密的base64串 /// 密钥,且必须为8位。 /// 已解密的字符串。 public static string decode(string source, string skey) { byte[] inputbytearray = system.convert.frombase64string(source);//encoding.utf8.getbytes(source); using (descryptoserviceprovider des = new descryptoserviceprovider()) { des.key = asciiencoding.ascii.getbytes(skey); des.iv = asciiencoding.ascii.getbytes(skey); system.io.memorystream ms = new system.io.memorystream(); using (cryptostream cs = new cryptostream(ms, des.createdecryptor(), cryptostreammode.write)) { cs.write(inputbytearray, 0, inputbytearray.length); cs.flushfinalblock(); cs.close(); } string str = encoding.utf8.getstring(ms.toarray()); ms.close(); return str; } } }
其它类似信息

推荐信息