请问在ASP中如何验证有JAVA传过来的MD5SUM后的密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问在ASP中如何验证有JAVA传过来的MD5SUM后的密码相关的知识,希望对你有一定的参考价值。

需要做网页接口.对方由JAVA编程,将一个字符串个经过MD5SUM后的传给我,我需要ASP中将该"字符串"经过MD5后与传过来的串比对.请各位大虾不吝赐教.拜托拜托,急急急!!!
主要是解决如何在ASP中使用MD5.由于对方是给一个MD5SUM后的串给我,我需要同样将指定的串通过MD5后再比较,相当与验证数字签名的密码.

参考技术A 以下是我做银行接口代码工作原理,省略了一部分,望能帮到你
<%

'获取参数
merchant_id = request.querystring("merchant_id") '商户编号
amount = request.querystring("amount") '交易金额
mydate = request.querystring("date") '交易日期
succeed = request.querystring("succeed") '交易结果,"Y"表示成功,"N"表示失败
mymac = request.querystring("mac") ''对方加密过的值
'注意正确的参数串拼凑顺序
src = "merchant_id=" & merchant_id & "&amount=" & amount & "&date=" & mydate & "&succeed=" & succeed
'md5加密,注意你的加密算法必须和你传过来的加密算法要一至,建议和发送加密方用同样的md5
mac=md5(src)
'mac值校验
if ucase(mac)=ucase(mymac) then ''如果签名验证成功!
'' 为保证数据传输的精准,建议对如下返回值 与 提交支付网关前的值 进行比较:
'' merchant_id ==>与您的商户编号一致
'' orderid ==>与产生的订单编号一致
'' amount ==>与该需要支付的金额一致
'' 如果不一致,则返回的值可能被伪造,交易应该判定为失败。
'' succeed 返回支付的结果。返回"Y"表示成功,其他为失败。商户必须对此进行验证
%>
================================
<%
if succeed="Y" then ''=如果支付成功
''商户网站逻辑处理
else ''如果支付失败
''提示支付失败信息
end if
else ''如果签名验证失败!
''提示签名验证失败信息
end if
%>
参考技术B 比如你要传的变量是这样的
一个加密后的字符串sdjkfskjfahkfkfhads
ASP我不知道如何写,不过php这样写
index.php?string=sdjkfskjfahkfkfhads;
然后你通过$_GET['string']来接受这个变量。
你可以通过JAVA来发送一个这样的网址然后用ASP来接受这样变量,不知道可不可以解决~~

java在后台如何将前台传过来的json格式数据转换为map?

"a":0,"b":1,"c":1,"d":1
这是前台传过来的数据格式,请问如何转换为map?

    import com.alibaba.fastjson.JSON;  

    import com.alibaba.fastjson.JSONObject;  

    import java.util.Map;  

    /** 

    * JSON字符串自动转换 

    * Created by zkn on 2016/8/22. 

    */  

    public class JsonToMapTest01   

    public static void main(String[] args)  

    String str = "\\"0\\":\\"zhangsan\\",\\"1\\":\\"lisi\\",\\"2\\":\\"wangwu\\",\\"3\\":\\"maliu\\"";  

    //第一种方式  

    Map maps = (Map)JSON.parse(str);  

    System.out.println("这个是用JSON类来解析JSON字符串!!!");  

    for (Object map : maps.entrySet())  

    System.out.println(((Map.Entry)map).getKey()+"     " + ((Map.Entry)map).getValue());  

      

    //第二种方式  

    Map mapTypes = JSON.parseObject(str);  

    System.out.println("这个是用JSON类的parseObject来解析JSON字符串!!!");  

    for (Object obj : mapTypes.keySet())  

    System.out.println("key为:"+obj+"值为:"+mapTypes.get(obj));  

      

    //第三种方式  

    Map mapType = JSON.parseObject(str,Map.class);  

    System.out.println("这个是用JSON类,指定解析类型,来解析JSON字符串!!!");  

    for (Object obj : mapType.keySet())  

    System.out.println("key为:"+obj+"值为:"+mapType.get(obj));  

      

    //第四种方式  

    /** 

    * JSONObject是Map接口的一个实现类 

    */  

    Map json = (Map) JSONObject.parse(str);  

    System.out.println("这个是用JSONObject类的parse方法来解析JSON字符串!!!");  

    for (Object map : json.entrySet())  

    System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  

      

    //第五种方式  

    /** 

    * JSONObject是Map接口的一个实现类 

    */  

    JSONObject jsonObject = JSONObject.parseObject(str);  

    System.out.println("这个是用JSONObject的parseObject方法来解析JSON字符串!!!");  

    for (Object map : json.entrySet())  

    System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  

      

    //第六种方式  

    /** 

    * JSONObject是Map接口的一个实现类 

    */  

    Map mapObj = JSONObject.parseObject(str,Map.class);  

    System.out.println("这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!");  

    for (Object map: json.entrySet())  

    System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  

      

    String strArr = "\\"0\\":\\"zhangsan\\",\\"1\\":\\"lisi\\",\\"2\\":\\"wangwu\\",\\"3\\":\\"maliu\\"," +  

    "\\"00\\":\\"zhangsan\\",\\"11\\":\\"lisi\\",\\"22\\":\\"wangwu\\",\\"33\\":\\"maliu\\"";  

    // JSONArray.parse()  

    System.out.println(json);  

      

      

参考技术A 你找一个解析json的包,Gson 或者 fastjson ,把你收到的那个字符串 转换为 JsonObject对象,然后你用Map的操作方式来操作JsonObject就行了。顺便说下,json的格式比较复杂,它比Map的格式要复杂些,所以,你不可能把json完全转换为Map,如果格式是按你说的"a":0,"b":1,"c":1,"d":1 格式是固定的话,那你自己把JsonObject转换成Map就可以了 参考技术B 你是想转换成map再取值吗?还是有什么别的需求?如果是想根据键取值可以这样取值
//转换为json键值对象
JSONObject jsonObject = new JSONObject().fromObject(result);
//根据json的键获得对应的值
String value= jsonObject.getString(key);

希望能帮到您。追问

谢谢!!
如果要转成map,那应该怎么做呢?
还有,我从前台传回来的值有中文,到后台就变成乱码了,但是我后台里也有写
request.setCharacterEncoding("UTF-8");
为什么还是乱码呢?

追答

把提交数据方式改为post方式,前台跟后台编码一致就不会出问题!至于json怎么转map我在网上试了很多方法都失败了,你可以研究研究。

本回答被提问者和网友采纳
参考技术C JSON数据,在后台接收到时,以JSONObject为例;
JSONObject js_obj = JSONObject.parse(接收到前台传递JSON的字符串);
转换为json对象,map 我们都清楚,其实是以键队的形式存储的,
所以,我们在已知json属性的前提下将js_obj对象值取出,赋值给新的map对象即可。
参考技术D 搞不定你现在是JSON还为什么要转成MAP 你在这里不就可以直接获取数据了吗

如:
function(data)//data是你的"a":0,"b":1,"c":1,"d":1
这里直接data.a就可以获取0了 data.b就可以获取1了

以上是关于请问在ASP中如何验证有JAVA传过来的MD5SUM后的密码的主要内容,如果未能解决你的问题,请参考以下文章

java在后台如何将前台传过来的json格式数据转换为map?

请问一下,两个不同java项目传参(同步)数据的方式有啥效率好,安全性也不错的方式?

请问IIS中如何部署asp.net项目?

请问asp.net如何将整个页面或部分页面导出到word?并下载到本地?

请问java -jar 方法如何传参?

php文件如何接受vue前端axios传过来的参数实现登录验证?