A. 如何加密url后的数字参数

加密参数是jsp参数传递中的一种安全措施,加密方法如下:

建议使用对称加密内如:DES或者容是PBE算法。
加密算法如下:
public static String encrypt(String key, String plainText) throws Exception {
String encryptTxt = "";
try {
byte[] salt = new byte[8];
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(key.getBytes());
byte[] digest = md.digest();
for (int i = 0; i < 8; i++) {
salt[i] = digest[i];
}

B. 网址后面有个S加密怎么弄

https默认端口是443,http默认端口是80,所有加一个s就不一样。也不是所有网站加s就可以加密,需要WEB服务器端进行相应的配置。以下配置步骤仅供参考:
HTTPS_SSL配置的步骤:

服务器端单向认证:

第一步:进入jdk的安装文件路径下面的bin目录;

第二步:在bin目录下输入以下命令
keytool -genkey -v -alias mykey -keyalg RSA -validity 3650 -keystore c:\sst.keystore
-dname "CN=你的ip,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass 123456 -keypass 123456
说明:
keytool 是JDK提供的证书生成工具,所有参数的用法参见keytool –help

-genkey 创建新证书
-v详细信息
-alias以”mykey”作为该证书的别名。这里可以根据需要修改
-keyalgRSA 指定算法
-keysize 指定算法加密后密钥长度
-keystorec:\sst.keystore保存路径及文件名
-validity3650证书有效期,单位为天

CN=你的ip,OU=cn,O=cn,L=cn,ST=cn,c=cn 基本信息的配置
CN=你的ip 这个配置务必注意
-storepass 123456789 -keypass 123456789 密码设置

第三步:生成的文件如下图所示

第四步:配置tomcat的server.xml文件[1]redirectPort端口号改为:443
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443" useBodyEncodingForURI="true"/>

[2]SSL HTTP/1.1 Connector定义的地方,修改端口号为:443

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="C:/sst.keystore" keystorePass="123456"
clientAuth="false" sslProtocol="TLS" />
属性说明:clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证keystoreFile:服务器证书文件路径keystorePass:服务器证书密码truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书truststorePass:根证书密码
[3] AJP 1.3 Connector定义的地方,修改redirectPort为443
<Connector port="8009" protocol="AJP/1.3" redirectPort="443"/>

第五步:重新启动Tomcat就可以了。

附加内容:若要使得应用只能通过https的方式访问,在该项目的web.xml文件中加入如下代码:

<login-config><!-- Authorization setting for SSL --><auth-method>CLIENT-CERT</auth-method><realm-name>Client Cert Users-only Area</realm-name></login-config><security-constraint><!-- Authorization setting for SSL --><web-resource-collection><web-resource-name>SSL</web-resource-name><url-pattern>/*</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint><!--Require HTTPS for everything except /img (favicon) and /css.--><security-constraint><web-resource-collection><web-resource-name>HTTPSOrHTTP</web-resource-name><url-pattern>*.ico</url-pattern><url-pattern>/img/*</url-pattern><url-pattern>/css/*</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>NONE</transport-guarantee></user-data-constraint></security-constraint>测试 :在浏览器中输入:https://localhost:8443/,会弹出选择客户端证书界面,点击“确定”,会进入tomcat主页,地址栏后会有“锁”图标,表示本次会话已经通过HTTPS双向验证,接下来的会话过程中所传输的信息都已经过SSL信息加密。
可能存在的问题:
Eclipse中启动tomcat7.0,本地tomcat配置文件被eclipse恢复。

问题是这样的,在eclipse的servers配置项里,将tomcat的启动配置为了use tomcat location,但是每次在eclipse里publish项目都会把本地G:\tomcate7.0\apache-tomcat-7.0.29\conf下的配置文件(如:tomcat-user.xml添加了用户等信息)给重置,也就是里面添加的内容被清空了,回复到原来的样子:

问题解决方案:

你eclipse工程列表中应该 还有个 Servers工程,下面会有Tomcat7的配置文件,你把里面的对应配置文件改了。每次是用这个文件来覆盖,tomcat下面的文件的。

特定的目录实现https访问
解决方案:

在web.xml文件中配置相应的路径

<security-constraint><!-- Authorization setting for SSL --><web-resource-collection><web-resource-name>SSL</web-resource-name><url-pattern>/login.html</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>

C. 用JS方法加密URL

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1.传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

例如:<script language="javascript">document.write('<a href="http://passport..com/?logout&aid=7&u='+encodeURIComponent("http://cang..com/bruce42")+'">退出</a>');</script>

2.进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI("http://cang..com/do/s?word=网络&ct=21");

3. js使用数据时可以使用escape

例如:搜藏中history纪录。

4.escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

D. java 中 url地址栏里传的数字值,如何加密

现在很多加密算法的 比如你可以使用XXTea加密。前端使用post请求,请求之前将你要传的参数 组合成一个json格式,之后进行XXTea加密,加密完之后 将加密得到的字符串放到post 请求数据中。后台加一个拦截器,拿到你的请求地址以及加密字符串,然后将字符串解密 得到一个map,再通过request得到的ParamRequestWrapper 将解密后的参数放回去,这样你的方法就可以照常拿到数据了。

E. [JSP]如何加密URL中.jsp后面的参数

加密参数是jsp参数传递中的一种安全措施,加密方法如下:

建议使用对称加密如:DES或者是PBE算法。
加密算法如下:
public static String encrypt(String key, String plainText) throws Exception {
String encryptTxt = "";
try {
byte[] salt = new byte[8];
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(key.getBytes());
byte[] digest = md.digest();
for (int i = 0; i < 8; i++) {
salt[i] = digest[i];
}
PBEKeySpec pbeKeySpec = new PBEKeySpec(key.toCharArray());
SecretKeyFactory keyFactory = SecretKeyFactory
.getInstance("PBEWithMD5AndDES");
SecretKey skey = keyFactory.generateSecret(pbeKeySpec);
PBEParameterSpec paramSpec = new PBEParameterSpec(salt, ITERATIONS);
Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
cipher.init(Cipher.ENCRYPT_MODE, skey, paramSpec);
byte[] cipherText = cipher.doFinal(plainText.getBytes());
String saltString = new String(Base64.encode(salt));
String ciphertextString = new String(Base64.encode(cipherText));
return saltString + ciphertextString;
} catch (Exception e) {
throw new Exception("Encrypt Text Error:" + e.getMessage(), e);
}
使用方法:
把jsp?后面的参数作为参数传入encrypt();然后就可以返回加密串了。

F. 怎么用js来加密url的传递参数

Oh! A matchstick is useful for her.

G. 网页url地址参数的加密一般用什么算法

这个不是md5加密 应该是自定义的一种加密方式

url用加密 主要是防止在传参的时候回遇到中文答 而出现乱码问题

url传参一般都是自定义的加密算法 因为这种加密可以破解 这样就知道

url所传的参数是什么 如果用md5的话 估计很难破解 基本上不可行

H. url参数加密

加密URL参数

插件在访问 Web 程序时,可以使用 Get 方法或 Post 方法提交数据,无论是哪种方法,按照 HTTP 协议的规范,参数总是按照以下格式提交(每对参数名/参数值以“&”号分隔):

参数名1=参数值1&参数名2=参数值2&参数名3=参数值3...

如果您没有使用SSL,所有的参数名和参数值都将以明文的形式通过网络传输到 Web 服务器,显然这种方式是很不安全的,为了保证插件与Web 程序的通讯安全,插件在提交参数前可以对每个参数值使用 Rijndael 加密算法进行加密处理,并使用 Base64 编码转换为可读字符串形式。

Rijndael 加密算法是一种高效的对称加密算法,它是 AES(Advanced Encryption Standard,高级加密算法标准)的实现,在加密和解密时有两个基本参数:初始向量和密钥,Web程序在进行解密时必须使用和插件端设置相同的初始向量和密钥。

下面分别列出了加密和不加密的例子各一个:

a. 不加密:Username=test&Password=123456&ClientIP=192.168.0.200&CurrentTime=2005-07-06+23%3a51%3a29

b. 加密:Username=ZtlBwgvwkS5YV98N9cgO%2fw%3d%3d&Password=vBSchK4dJX7Z2zfUatu9ZQ%3d%3d&CurrentTime=mpNifqRIvBV2xZi3d%2fPli6%2bZwR9BKHs4y6t%2bNS2QIr4%3d

在 Web 程序端必须使用相同的算法来解密各个参数值,具体如何实现取决与您所使用的 Web 程序语言,这就需要您找到特定语言的算法实现。解密一个参数值的过程包括下面三个步骤:

1. 使用 Base64 算法将参数值转换为字节数组;

2. 使用 Rijndael 算法将 1 中得到的字节数组解密得到另一字节数组;

3. 将 2 中得到字节数组用特定的字符集转换成字符串,即得到原始的数据。

插件安装目录下的“GVODClassLib.dll”文件包含了加密和解密的算法实现类 CryptoUtility,它的 Decrypt 方法可以直接将 Base64 编码后的密文解密为原文字符串,如果您的 Web 程序使用的是 asp.net 编写的,可以将该文件拷贝到您 Web 站点的“/bin”目录下,然后按照下面的例子完成解密:

<%@ page language="C#" %>
<%@ import namespace="Com.GVOD" %>
<%
//定义密钥,请改成你加密时使用的密钥
string key = "OEtxF/yyALd2NflVW4KSMspQIozPkSRL+mEdvlBAzUQ=";

//定义初始向量,请改成你加密时使用的初始向量
string iv = "Cz3EXGTEMeIN8PXKFLiZWg==";

//定义密钥长度,请改成你加密时使用的密钥的长度
int keyLength = 256;

//生成 CryptoUtility 类的实例
CryptoUtility util = new CryptoUtility(key, iv, keyLength);

//解密用户名
string username = util.Decrypt(Request["Username"]);

//解密密码
string password = util.Decrypt(Request["Password"]);

//解密其它参数
...
%>