Java Web安全之代码审计

各位老铁们好,相信很多人对Java怎么给WebService加密都不是特别的了解,因此呢,今天就来为大家分享下关于Java怎么给WebService加密以及加密java冷知识的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

  1. Java怎么给WebService加密
  2. java concurrenthashmap put的时候要加锁吗

Java怎么给WebService加密

1.1.1验证码加密接口中的验证码参数,均需要通过DES+BASE64加密,1.1.2报文签名通票平台接入端分配一个cp_code和csecret,双方均采用如下规则对报文进行签名:l第一步:签名源串构造规则:将请求参数按照如下规则组织“a=x&b=y&c=z&……”,每一个参数按参数名的自然数序排列。(按字典序排列)l第二步:使用HMAC-SHA1加密算法,将Step1中的到的源串以及实现分配的密钥(csecret)进行加密;l第三步:将Step2中得到的加密字串进行Base64编码。签名密钥(secret):abcdefghijklmnopqrstuvwx/***返回签名之后的JSON对象**@paramjson原JSON对象*@paramsecret密钥*@return*@throwsException*/publicstaticStringdoSign(JSONObjectjson,Stringsecret)throwsException{StringbaseStr="";for(Objectkey:newTreeSet(json.keySet())){baseStr+=("&"+key+"="+json.get(key));}SecretKeySpeckey=newSecretKeySpec(secret.getBytes("UTF-8"),"HmacSHA1");Macmac=Mac.getInstance("HmacSHA1");mac.init(key);byte[]bytes=mac.doFinal(baseStr.substring(1).getBytes("UTF-8"));json.put("signature",newString(Base64.encodeBase64(bytes)));returnjson.toString();}

java concurrenthashmap put的时候要加锁吗

不需要加锁,JavaConcurrentHashMap内部已经实现了锁机制,ConcurrentHashMap类中包含两个静态内部类HashEntry和Segment。HashEntry用来封装映射表的键/值对;Segment用来充当锁的角色,每个Segment对象守护整个散列映射表的若干个桶。每个桶是由若干个HashEntry对象链接起来的链表。一个ConcurrentHashMap实例中包含由若干个Segment对象组成的数组。

OK,关于Java怎么给WebService加密和加密java冷知识的内容到此结束了,希望对大家有所帮助。

WebService的概述与使用