get方式加密完成java和c#对接

get方式请求链接c#用 HttpUtility.UrlEncode()加密、
java的url加密方式是**URLEncoder.encode( )**
现在需要java和c#去对接,但是这两种加密方式的结果有差异,如何在不改变c#的url加密方式前提下,让java的url加密结果和c#的一致

0

1个回答

这个将数据打包成json数据,c#接受时,解析json。
看看这个:https://blog.csdn.net/luyuling_66/article/details/52326524

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
get方式的url加密(及加密常识)
base64Encode然后MD5加密 notepad的插件里找下有个base64Encode   项目里还对account.html页面“下一步,去付款”后post提交的数据进行加密了   cookie加密怎么加?   加密常识: https://blog.csdn.net/qq_27481603/article/details/53256491...
对接加密
private static final String clientKey = BatchNumber .getValue("JX_clientKey"); private static final String token = BatchNumber .getValue("JX_token"); private stat...
java get方式中文乱码
java中get方式提交的参数编码,只支持iso8859-1编码。
C语言与C#的DES加密对接
不知道各位大神有没有可以和C#对接的DES加密方式,求C语言代码,和C#应该选择的加密方式
java 对接易宝支付完成真实网上支付
java 对接易宝支付完成真实网上支付
c#实现RSA私钥加密对接java接口
该代码是用c#开发对接一个java的物流对接的demo,用到了RSA私钥加密,完整的demo可以直接运行的
c#对接java aes加密后的值不一样
java代码中的秘钥经过md5加密为32位;rn应该是AES-256-ECBrn但加密后的字符串就是对不上rn求大神解答rnrnrnjava代码rnrnpackage com.zct.demo.util;rnimport org.apache.commons.codec.binary.Base64;rnimport org.apache.commons.lang3.StringUtils;rnimport org.slf4j.Logger;rnimport org.slf4j.LoggerFactory;rnrnimport javax.crypto.Cipher;rnimport javax.crypto.spec.SecretKeySpec;rnimport java.security.MessageDigest;rnimport java.security.NoSuchAlgorithmException;rnrn/**rn * Created by yepei.ye on 2016/4/1.rn * Description:rn */rnpublic class AESUtil rn private static final Logger logger = LoggerFactory.getLogger(AESUtil.class);rn private static final String defaultCharset = "UTF-8";rn private static final String KEY_AES = "AES";rn private static final String KEY_MD5 = "MD5";rn private static MessageDigest md5Digest;rnrn static rn try rn md5Digest = MessageDigest.getInstance(KEY_MD5);rn catch (NoSuchAlgorithmException e) rn //rn rn rnrn /**rn * 加密rn *rn * @param data 需要加密的内容rn * @param key 加密密码rn * @returnrn */rn public static String encrypt(String data, String key) rn return doAES(data, key, Cipher.ENCRYPT_MODE);rn rnrn /**rn * 解密rn *rn * @param data 待解密内容rn * @param key 解密密钥rn * @returnrn */rn public static String decrypt(String data, String key) rn return doAES(data, key, Cipher.DECRYPT_MODE);rn rnrn /**rn * 加解密rn *rn * @param datarn * @param keyrn * @param modern * @returnrn */rn private static String doAES(String data, String key, int mode) rn try rn if (StringUtils.isBlank(data) || StringUtils.isBlank(key)) rn return null;rn rn boolean encrypt = mode == Cipher.ENCRYPT_MODE;rn byte[] content;rn if (encrypt) rn content = data.getBytes(defaultCharset);rn else rn content = Base64.decodeBase64(data);rn rn SecretKeySpec keySpec = new SecretKeySpec(md5Digest.digest(key.getBytes(defaultCharset)), KEY_AES);rn Cipher cipher = Cipher.getInstance(KEY_AES);// 创建密码器rn cipher.init(mode, keySpec);// 初始化rn byte[] result = cipher.doFinal(content);rn if (encrypt) rn return Base64.encodeBase64String(result);rn else rn return new String(result, defaultCharset);rn rn catch (Exception e) rn logger.error("AES密文处理异常", e);rn rn return null;rn rnrnrn测试rnrnpublic static void main(String[] args) throws Exception rn String key = "qunar2016";rn String data = "test data";rn String encrypted = AESUtil.encrypt(data, key);rn String decrypted = AESUtil.decrypt(encrypted, key);rn System.out.println("加密后的密文:\n" + encrypted);rn System.out.println("解密后的报文:\n" + decrypted);rnrnkey md5加密后为 9DA00548D3110D55FFC0CFE29BA78E38rn加密后的字符串 5z9jULhAFNAI030GSvwmQw==rnrn我加密后的 uorcTcWkv5QNpDjS9QbA/w==rn
DELPHI6 和C#对接java的WEBSERVICE接口
HIS厂商,采用DELPHI6 和C#对接我们的WEBSERVICE接口,不想升级DELPHI,有通过.NET作为中间过渡的方法吗?rn
PHP DES-ECB加密对接Java解密
最近公司有个业务,需要对接第三方接口,但是参数是需要加密的,对方也只提供了一个java的demo,在网上到处搜索,没有找到直接就能用的方法,后来还是跟公司的Android工程师对接出来的,在这里记录一下大致的流程。 首先说明一下对方要求的接口请求方式,格式为:http://ip:port/interface/method?data=摘要@@16进制字符串 说明: 请求参数需要组合成a=1&amp...
C# 对接 Java 3des md5WithRsa
C# 对接 Java 3des md5WithRsa。 有需要的可以参考下
java get方式提交乱码问题
[code="java"]String userName=request.getParameter("userName");try { userName=java.net.URLDecoder.decode(userName,"UTF-8");}catch (UnsupportedEncodingException e) { log4j.error(e.getMessage())...
java进阶之对接安卓MD5加密工具类
       在上一篇博客中我讲到了对接安卓的RSA加密算法,RSA属于非对称加密码,公钥加密算法,是拥有私钥是可进行解密的,今天我们来了解一下不可逆的MD5加密算法       public static String getKey(String plainText) { byte[] secretBytes = null; try { ...
java进阶之对接安卓RSA加密工具类
     1.什么是RSA加密算法       RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其...
JAVA和IOS对接RSA加密问题
公司开发IOS APP,跟JAVA后台对接。在加密方面,使用的是RSA。在JAVA端生成的公钥和私钥,通过BASE64转成字符串。然后在IOS端,如果直接拿着这个转化的字符串密钥(通过BASE64解密后)去做RSA加密的话,这边JAVA端解密会失败。所以,请问下,在密钥方面应该怎么处理呢?JAVA端生成的密钥怎样处理给到IOS端才会成功?谢谢!
java网络请求GET和POST方式
GET方式 public static String readContentFromGet(String get_url) throws IOException { String getURL = get_url; URL getUrl = new URL(getURL); HttpURLConnection connection =
get方式
在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。
get 方式
以url方式带参数中文不支持rn/aa.do?kd=中rn
C# 伪装方式加密文件夹
C# 伪装方式加密文件夹 VS2005 C# 伪装方式加密文件夹 VS2005 C# 伪装方式加密文件夹 VS2005 C# 伪装方式加密文件夹 VS2005 好东西大家分享
C# MD5方式 加密示例
C# MD5方式 加密示例
对接方式理解
对接方式理解主要原则:降低耦合性,对外依赖程度低(外部修改后,内部只要进行少量适配即可)实现方式:1.与外部相关联的自定义参数全在一个函数中处理                 2. 内置一天参数和外部需要的参数进行映射                 3.外部类尽量提供内部访问接口,降低内部接口自己调用传值出错的风险,内部类尽量直接调用外部类已经定义的对                    外...
数据对接方式
1 主动推送给对方 需要索取对方的标识id,  公钥,加密算法,私钥等 2 主动从对方那里访问获取 需要索取对方的标识id,  公钥,加密算法,私钥等 3 对方来我们这里访问获取 需要提供本方 标识id,  公钥,加密算法,私钥等给对方 4 对方推送给我们 需要提供本方方标识id,  公钥,加密算法,私钥等给对方 5 发布订阅(广播 ) 需要知道消息订阅地址,topic等信息。...
(Java密码加密)MD5方式
可以对登录用户的密码进行加密,起到保护密码安全。 之前上传的那个有点乱,换成了java源码打包的。
JAVA——CBC方式的解密与加密
CBC方式的解密与加密 一、创建对称密钥 现代密码算法的过程非常复杂,加密和解密使用相同的密钥,称为对称密钥算法。Java中已经提供了常用的加密算法,我们不需要了解算法的细节就可以直接使用这些算法实现加密。每一种算法所用的密钥都有所不同,本实例演示如何运用Java中提供的方法创建对称密钥,并通过对象序列化方式保存在文件中。 1.原理 首先获取密钥生成器,然后密钥的生成,最后对密钥进行保存。 2....
Java实现MD5加密的方式
  MD5加密是一种常见的加密方式,我们经常用在保存用户密码和关键信息上。那么它到底有什么,又什么好处呢,会被这么广泛的运用在应用开发中。   1、什么是MD5   MD5加密全程是Message-Digest Algoorithm 5(信息-摘要算法),它对信息进行摘要采集,再通过一定的位运算,最终获取加密后的MD5字符串。   例如我们要加密一篇文章,那么我们会随机从每段话或者每行中获取...
c#加密,java解密
如题,现在代码已经可以用了,就是有个问题,即用C#加密后,JAVA解密,部分解密过后的数据会显示为乱码,小弟以为是字符集转换的问题,找了半天毛病都没找到,请各位高手帮个忙rnrnc#代码rnrnusing System;rnusing System.Security;rnusing System.Security.Cryptography;rnusing System.IO;rnusing System.Text;rnusing System.Threading;rnnamespace WebApplication2rnrn /// rn /// DES3 的摘要说明。rn /// rn public class DES3rn rn public DES3()rn rn rn //密钥rn private const string sKey = "A3F2569DESJEIWBCJOTY45DYQWF68H1Y";rn //矢量,矢量可以为空rn private const string sIV = "qcDY6X+aPLw=";rn //构造一个对称算法rn private SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();rn #region public string EncryptString(string Value)rn /// 加密字符串rn /// 输入的字符串rn /// 加密后的字符串rn public string EncryptString(string Value)rn rn ICryptoTransform ct;rn MemoryStream ms;rn CryptoStream cs;rn byte[] byt;rn mCSP.Key = Convert.FromBase64String(sKey);rn mCSP.IV = Convert.FromBase64String(sIV);rn //指定加密的运算模式rn mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;rn //获取或设置加密算法的填充模式rn mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;rn ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);rn byt = Encoding.UTF8.GetBytes(Value);rn ms = new MemoryStream();rn cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);rn cs.Write(byt, 0, byt.Length);rn cs.FlushFinalBlock();rn cs.Close();rn return Convert.ToBase64String(ms.ToArray());rn rn #endregionrn rn rn rn rnjava代码rn rnpackage des;rnimport javax.crypto.Cipher;rnimport javax.crypto.NoSuchPaddingException;rnimport javax.crypto.SecretKey;rnimport java.security.NoSuchAlgorithmException;rnimport sun.misc.*;rnimport java.io.IOException;rnimport java.io.UnsupportedEncodingException;rnimport javax.crypto.BadPaddingException;rnimport javax.crypto.IllegalBlockSizeException;rnimport javax.crypto.spec.SecretKeySpec;rnimport java.security.*;rnimport javax.crypto.SecretKeyFactory;rnimport java.security.spec.*;rnimport javax.crypto.spec.DESedeKeySpec;rn/**rn解密rn */rnpublic class DES rn private static String Algorithm = "DESede";//加密算法的名称rn private static Cipher c;//密码器rn private static byte[] cipherByte;rn private static SecretKey deskey;//密钥rn private static String keyString = "A3F2569DESJEIWBCJOTY45DYQWF68H1Y";//获得密钥的参数rn //对base64编码的string解码成byte数组rn public byte[] deBase64(String parm) throws IOException rn BASE64Decoder dec=new BASE64Decoder();rn byte[] dnParm = dec.decodeBuffer(parm);rn System.out.println(dnParm.length);rn System.out.println(dnParm);rn return dnParm;rn rn //把密钥参数转为byte数组rn public byte[] dBase64(String parm) throws IOException rn BASE64Decoder dec=new BASE64Decoder();rn byte[] dnParm = dec.decodeBuffer(parm);rn return dnParm;rn rn /**rn * 对 Byte 数组进行解密rn * @param buff 要解密的数据rn * @return 返回加密后的 Stringrn */rn public static String createDecryptor(byte[] buff) throwsrn NoSuchPaddingException, NoSuchAlgorithmException,rn UnsupportedEncodingException rn try rn c.init(Cipher.DECRYPT_MODE, deskey);//初始化密码器,用密钥deskey,进入解密模式rn cipherByte = c.doFinal(buff);rn rn catch(java.security.InvalidKeyException ex)rn ex.printStackTrace();rn rn catch(javax.crypto.BadPaddingException ex)rn ex.printStackTrace();rn rn catch(javax.crypto.IllegalBlockSizeException ex)rn ex.printStackTrace();rn rn return (new String(cipherByte,"UTF-8"));rn rn public void getKey(String key) throws IOException, InvalidKeyException,rn InvalidKeySpecException rn byte[] dKey = dBase64(key);rn try rn deskey=new javax.crypto.spec.SecretKeySpec(dKey,Algorithm);rn c = Cipher.getInstance(Algorithm);rn rn catch (NoSuchPaddingException ex) rn rn catch (NoSuchAlgorithmException ex) rn rn rn public static void main(String args[]) throws IOException,rn NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeySpecException,rn InvalidKeyException, IOException rn DES des = new DES();rn des.getKey(keyString);rn byte[] dBy = des.deBase64("1ZVasdJJco1qccDnnfQfb8QeaARxhkR6");rn String dStr = des.createDecryptor(dBy);rn System.out.println("解:"+dStr);rn rn
C#加密JAVA解密
C# 加密 JAVA 解密源码 using System; using System.IO; using System.Security.Cryptography; namespace WindowsApplication1 { /// <summary> /// Security 的摘要说明。 /// </summary> public class Security { const string KEY_64 = "flxmtdes"; const string IV_64 = "flxmtIvS"; public Security() { // // TODO: 在此处添加构造函数逻辑 // } public static string Encode(string data) { byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); int i = cryptoProvider.KeySize; MemoryStream ms = new MemoryStream(); CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write); StreamWriter sw = new StreamWriter(cst); sw.Write(data); sw.Flush(); cst.FlushFinalBlock(); sw.Flush(); return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length); } public static string Decode(string data) { byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); byte[] byEnc; try { byEnc = Convert.FromBase64String(data); } catch { return null; } DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); MemoryStream ms = new MemoryStream(byEnc); CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read); StreamReader sr = new StreamReader(cst); return sr.ReadToEnd(); } } }
java与C#的PBE加密
java的PBEWithMD5AndDES加密 C#的PBEWithMD5AndDES加密
C#通过https GET方式获得json数据
最近在项目上碰到一个由合作方提供Https链接,我通过c#来获得响应的json字符串,并解析。   其总体思路是: 1、获得网址的url 2、调用Https辅助类获得响应 3、解析json 而我需要先登录,然后保存cookie信息,然后再获取json 值得注意的是: 1、CheckValidationResult用于验证服务器证书是否合法,当然可以直接返回true来表示验证永远通过...
C#实现post和get方式的请求
一、post: public static String postOrderDate(String data, String url) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); ...
C# GET方式获取网页的COOKIES
public static string SendDataByGET(string Url, string postDataStr, ref CookieContainer cookie)rn rn HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);rn if (cookie.Count == 0)rn rn request.CookieContainer = new CookieContainer();rn cookie = request.CookieContainer;rn rn elsern rn request.CookieContainer = cookie;rn rn request.ContentType = "application/x-www-form-urlencoded ";rn request.Method = "GET";rn request.KeepAlive = true;rn request.AllowAutoRedirect = true;rnrn request.Referer = "http://www.flvpro.com/?aff=7884_generic";rn request.Accept = "image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/*";rn request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"; rn request.Headers.Add("Accept-Encoding", "gzip, deflate"); rn request.Headers.Add("Accept-Language", "zh-cn"); rn HttpWebResponse response = (HttpWebResponse)request.GetResponse();rn Stream myResponseStream = response.GetResponseStream();rn StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));rn string retString = myStreamReader.ReadToEnd();rn myStreamReader.Close();rn myResponseStream.Close();rnrn return retString;rn rnrn这个方法获取下来的COOKIES 跟我用IE打开这个网页所获取的COOKIES不一致 有达人可以指教吗rn因为里面有一个下载链接需要到COOKIES才可以下载rn具体是http://www.flvpro.com/?aff=7884_generic 这个页面rn下载的链接是http://www.flvpro.com/downloadfile.php?aff=7884_generic&c=n2r4yx3w 如果单纯的GET这个地址rn获取不了下载地址 是一个EXE来的 目的就是要下载这个EXE 达人们有办法吗 谢谢 不盛感激
c#以GET的方式提交数据到WEB服务器
这个问题郁闷了我几个星期了~一直没得到解决的方法~rn问题是这样的~最近在写一个winform(c#)向webform(asp)提交数据的程序~是通过GET方法~rn以前写的都是通过POST方式~都通过了~rnHTTP的头信息都伪造好了~就是提交不上去~rn string GetMsg = "Msg=我爱你";rn WebClient MyWebClient = new WebClient();rn MyWebClient.Headers.Add("Accept", "image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/*");rn MyWebClient.Headers.Add("Accept-Language", "zh-cn");rn MyWebClient.Headers.Add("Accept-Encoding", "gzip, deflate");rn MyWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");rn richTextBox1.Text = MyWebClient.UploadString("http://ydsoft.xd2.cn/download/get.asp","GET", GetMsg);rnrn通过查阅MSDN知道UploadString方法重载了4次~但没有一次里面提到GET方式~rn各位给我思路~谢谢~
关于get方式和post方式
提交URL的时候 如果是用get方式会有个长度限制,超过长度后有些参数是取不到的,不知道各位弟兄一般是用什么方法来解决的?rn一定要用post方式吗?能不能有其他办法比如分段来传参数?rn如果是用post方式可以抓到XML的返回值吗?
get方式转化成post方式
请问一下下列代码中点击图片的话就会向www.abc.com/test.asp以get方式传送参数(productid=421),请问如何将get方式传送的改成post方式传送?rnrn rn rn rn rn rn rn 完美一卡通18元rn rn rn 信息费:30.0元rn rn rn
GET方式与POST方式对比
        今天遇到IE浏览器无法解决缓存问题。         问题描述:在页面操作某条数据,实际已经通过异步方式修改成功,但是因为IE浏览器会产生浏览器缓存,刷新仍然会显示上一次请求到的数据。          解决办法:后来经过同事处理,学到了!原来GET方式会产生缓存,而POST方式的请求不会产生浏览器缓存。最后将页面网格上的数据使用POST请求方式,解决了浏览器页面缓存问题。 ...
Java与js完成des+3des加密 、解密
与移动端进行交换的时候经常遇到需要加密、解密的情况,最近在给移动端做接口,就研究了下加解密,把两种方式汇总一下: 1、des加密、解密 (1)des加解密工具类 package com.loan.fore.util; import java.util.ArrayList; import java.util.List; public class Des { public static f
java C# PHP对接支付宝和微信API
java C# PHP 支付宝微信支付api接口 以及详细接口文档和demo
C#与C#接口对接,C#与Java的接口对接(序列化与反序列化)——(一)
接受数据1.建立Json请求包的类
post方式,header对接接口
利用https://app.netease.im/index#/网站接口,制作手机发送验证码 public function phone(){         //发送到的目标手机号码 $telphone         $telphone = $_GET['phone'];         $appSecret = 'cbb9799a43b6';         $CurTim
jco方式跟sap对接
java jco方法与sap对接,创建采购订单、销售订单
卡口对接HTTP方式技术规范
http://www.hbjfgl.cn/news.asp?act=content&cid=35&id=1113 跟这个一样的,小弟不会http上传,希望有做过的大哥给我看看
相关热词 c# 线程顺序 c#昨天当前时间 c# 多进程 锁 c#mysql图片存取 c# ocx 委托事件 c# 读取类的属性和值 c# out 使用限制 c#获取url的id c#怎么进行分页查询 c# update 集合