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

C#下 des加密后跟php加密后 不匹配~求高人指点

c#代码预览
string beforeencode = usercode=18516094544&serviceid=140114021990&cporderid=0eb44dbd78a8deef3854b18794ebff5a4312&operationtype=3&channelid=00012243&version=1.0&time=20140923134312;string key = subs123;var encodebyte = wowencryptdes(encoding.utf8.getbytes(beforeencode), key);string strencode = convert.tobase64string(encodebyte);string strencode1 = server.urlencode(strencode); /// /// md5加密 /// /// /// public string md5(string value) { return md5(value, encoding.getencoding(gbk)); } /// /// md5加密 /// /// /// /// public string md5(string value, system.text.encoding encoding) { if (encoding == null) { encoding = system.text.encoding.default; } md5cryptoserviceprovider md5 = new md5cryptoserviceprovider(); byte[] passkey = encoding.getbytes(value); byte[] hashkey = md5.computehash(passkey); stringbuilder md5string = new stringbuilder(); foreach (byte b in hashkey) { md5string.appendformat({0:x2}, b); } return md5string.tostring(); } private readonly encoding s_gb2312encoding = encoding.getencoding(gbk); public byte[] wowencryptdes(byte[] inputbytearray, string encryptkey) { using (var dcsp = new tripledescryptoserviceprovider()) { dcsp.mode = ciphermode.cbc; dcsp.padding = paddingmode.zeros; byte[] rgbkey = s_gb2312encoding.getbytes(md5(encryptkey).tolower().substring(0, 24)); byte[] rgbiv = new byte[] { (byte)'0', (byte)'0', (byte)'0', (byte)'0', (byte)'0', (byte)'0', (byte)'0', (byte)'0' }; using (var mstream = new memorystream()) { using (cryptostream cstream = new cryptostream(mstream, dcsp.createencryptor(rgbkey, rgbiv), cryptostreammode.write)) { cstream.write(inputbytearray, 0, inputbytearray.length); cstream.flushfinalblock(); return mstream.toarray(); } } } }加密后结果 = c4dihm%2f8yvclp%2b%2f10quapc3piydygzjepbtbjr6z2cych6hbq%2bvrmqam%2f6wakq5y8kfvtmnztpja2j3e5ycf0i5utmvdno4u0981i9mrntqpmkzfhddfdic2km3t3nt8iyicz6evfhnrpjqhn1b9uhp2bebkd5ip%2bmwoajkiu%2fmkvvlt%2fjnpsflzls%2fp5l1tvps1bpjspobayayfgjwega%3d%3d
php 源码
function encrypt($data){ $iv = chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0); $key = 'subs123'; // determine key bytes from the key text, using md5 and wrapping around $key = md5($key); echo '$key'.$key.''; $key = $key . $key; $triplekey = substr($key, 0, mcrypt_get_key_size('tripledes', cbc)); echo '$triplekey'.$triplekey.''; // add pkcs#7 padding $blocksize = mcrypt_get_block_size('tripledes', cbc); $paddingsize = $blocksize - (strlen($data) % $blocksize); $data .= str_repeat(chr($paddingsize), $paddingsize); $encodedtext = mcrypt_encrypt('tripledes', $triplekey, $data, cbc, $iv); return base64_encode($encodedtext);}加密后=0spyfexp%2fqa0x59pk3oq%2bxeqdh6dw%2bspg8tjjedxtnvbwqu5rdzx%2fza8skcvdztzoevmpndauhiqrwdzfmikhk1y5xgfj0foi63fjpip5cneok8bqpdfzbocxwgkukwdpsewhtmjp3orpna9cmygn%2bkhmvvetuxs2u%2bjz6gr57%2b8tjk8f3amipgzpgnxghqmsjnivcrhp2ibxodbvgwkjg%3d%3d
刚从。net 转php 求带~
回复讨论(解决方案) 在线等~~~~~
在线等~~~~~
如果不是我眼花了,那你的php里面用的好像是tripledes而不是des。
已解决......
其它类似信息

推荐信息