社区
Java
帖子详情
求简单加密解密工具,用于加密以get方式提交的密码!
马行空牛耕田
2004-11-12 11:27:59
环境:以get方式提交的密码,即密码写在url中里
要求:加密方式简单,加密后的密码和原密码长度区别不大,最好是等长;且都为字母,因为要写在url中。
...全文
397
19
打赏
收藏
求简单加密解密工具,用于加密以get方式提交的密码!
环境:以get方式提交的密码,即密码写在url中里 要求:加密方式简单,加密后的密码和原密码长度区别不大,最好是等长;且都为字母,因为要写在url中。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
马行空牛耕田
2004-11-16
打赏
举报
回复
多谢xiayiping(平) ,如果可以,请发mail到:wintersun_ph@163.com
多谢romeo00001(从心做起),给了我新的思路。
结贴咯!
romeo00001
2004-11-16
打赏
举报
回复
呵呵。把username设为PASSWORD,。。。,PASSWORD设为USERNAME,。。,多设几个域,加密,加个验证域发过去。
接收时通过验证域取回来。这样他怎么样都不能发送出正当的请求。。
比如这次可能value=username
username=value
password =password.
下次就是username=username
value=password
password=value
xiayiping
2004-11-16
打赏
举报
回复
简单加解密?
我原来做解密的时候,我们组一个人做了一个解密的软件,很强大!
要吗?给分就发给你
马行空牛耕田
2004-11-16
打赏
举报
回复
佩服“d_selenite(计算机的奴隶) :
一语中的,不管我怎么在url中加密密码,只要窃取者拿到用户名和加密后的密码,一样可以向url提交正当请求。
不过我其实是不甘心让别人一眼就看出我的加密方式,所以才来求比较复杂但又不会太复杂的加密算法。
这个帖子也骗了不少回复了,今晚就结贴! 多谢各位!
深圳万兴
2004-11-16
打赏
举报
回复
楼主顶坏了吧,我替你顶一把!
网易的从泡泡进入邮箱的时候就是在url中加密过的
xiaoxiaoyupku
2004-11-16
打赏
举报
回复
up
d_selenite
2004-11-16
打赏
举报
回复
这类方法根本就没有加密
客户端发被你编码过的密码,你接收到那个编码过的密码,并识别它
如果我在中间窃听到了这个编码过的密码,然后我就把这个编码过的密码伪装成你的客户,你并不能有效的区分开
就算客户端的密码是加密了的,服务器端数据库中记录的也是加密后的密码,然后你的验证是比较一下从客户端发给你的密码和数据库中的密码,但如果我在中间窃听到了这个密码,我并不需要解密,只需要把它原样发给你就能成功的伪装了
加密要加的是中间的传输过程,用https协议吧
AFTB2
2004-11-16
打赏
举报
回复
看的加密的比较简单的有,不知道GET的要求,但是我们基本都将密码加上几位,比如原来是A加2就是C
以此类推后边的就往前进位,个人感觉不错啊。而且不同的位还可以加不同的啊!推荐 呵呵
马行空牛耕田
2004-11-16
打赏
举报
回复
顶一顶 ^_^
lenoli
2004-11-15
打赏
举报
回复
简单的不如不加,感觉没什么用
浪费资源
debug148
2004-11-15
打赏
举报
回复
ding
killwin
2004-11-15
打赏
举报
回复
为什么要加密?
如果一定要以get方式传输,那就不要加密了
加密方式再好,通过查看网页源文件就能看到。和直接明文传送差不多。
我看到很多网站都是直接明文传输的。
water2004
2004-11-15
打赏
举报
回复
DING
cheyo车油
2004-11-15
打赏
举报
回复
用MD5,能否满足你的要求??
/* MD5 Message-Digest Algorithm - JavaScript
' MODIFICATION HISTORY:
' 1.0 16-Feb-2001 - Phil Fresle (sales@frez.co.uk) - Initial Version (VB/ASP code)
' 1.0 21-Feb-2001 - Enrico Mosanghini (erik504@yahoo.com) - JavaScript porting
*/
function MD5(sMessage) {
function RotateLeft(lValue, iShiftBits) { return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits)); }
function AddUnsigned(lX,lY) {
var lX4,lY4,lX8,lY8,lResult;
lX8 = (lX & 0x80000000);
lY8 = (lY & 0x80000000);
lX4 = (lX & 0x40000000);
lY4 = (lY & 0x40000000);
lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
if (lX4 | lY4) {
if (lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
else return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
} else return (lResult ^ lX8 ^ lY8);
}
function F(x,y,z) { return (x & y) | ((~x) & z); }
function G(x,y,z) { return (x & z) | (y & (~z)); }
function H(x,y,z) { return (x ^ y ^ z); }
function I(x,y,z) { return (y ^ (x | (~z))); }
function FF(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
}
function GG(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
}
function HH(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
}
function II(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
}
function ConvertToWordArray(sMessage) {
var lWordCount;
var lMessageLength = sMessage.length;
var lNumberOfWords_temp1=lMessageLength + 8;
var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
var lWordArray=Array(lNumberOfWords-1);
var lBytePosition = 0;
var lByteCount = 0;
while ( lByteCount < lMessageLength ) {
lWordCount = (lByteCount-(lByteCount % 4))/4;
lBytePosition = (lByteCount % 4)*8;
lWordArray[lWordCount] = (lWordArray[lWordCount] | (sMessage.charCodeAt(lByteCount)<<lBytePosition));
lByteCount++;
}
lWordCount = (lByteCount-(lByteCount % 4))/4;
lBytePosition = (lByteCount % 4)*8;
lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
lWordArray[lNumberOfWords-2] = lMessageLength<<3;
lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
return lWordArray;
}
function WordToHex(lValue) {
var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
for (lCount = 0;lCount<=3;lCount++) {
lByte = (lValue>>>(lCount*8)) & 255;
WordToHexValue_temp = "0" + lByte.toString(16);
WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
}
return WordToHexValue;
}
var x=Array();
var k,AA,BB,CC,DD,a,b,c,d
var S11=7, S12=12, S13=17, S14=22;
var S21=5, S22=9 , S23=14, S24=20;
var S31=4, S32=11, S33=16, S34=23;
var S41=6, S42=10, S43=15, S44=21;
// Steps 1 and 2. Append padding bits and length and convert to words
x = ConvertToWordArray(sMessage);
// Step 3. Initialise
a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
// Step 4. Process the message in 16-word blocks
for (k=0;k<x.length;k+=16) {
AA=a; BB=b; CC=c; DD=d;
a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
d=GG(d,a,b,c,x[k+10],S22,0x2441453);
c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
a=II(a,b,c,d,x[k+0], S41,0xF4292244);
d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
c=II(c,d,a,b,x[k+6], S43,0xA3014314);
b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
a=AddUnsigned(a,AA); b=AddUnsigned(b,BB); c=AddUnsigned(c,CC); d=AddUnsigned(d,DD);
}
// Step 5. Output the 128 bit digest
var temp= WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
return temp.toLowerCase();
}
马行空牛耕田
2004-11-15
打赏
举报
回复
我顶,再顶一次!
马行空牛耕田
2004-11-15
打赏
举报
回复
sirfei(让程序作主) :
URLEncoder这个不是专门的加密类吧,只是为了避免和url冲突的吧……
sirfei
2004-11-15
打赏
举报
回复
用JAVA自己带的java.net.URLEncoder
马行空牛耕田
2004-11-15
打赏
举报
回复
谢谢cheyo(五秒钟),MD5不可逆,且太长,所以不适合。
自己写了个简单的位移算法实现了加密,但是没时间把它写得更复杂。
希望哪位朋友帮个忙 :)
马行空牛耕田
2004-11-12
打赏
举报
回复
我顶,我顶
scytale:Wrapper Go库和
工具
可轻松进行(ZIP)文件
加密
安装使用go get安装软件包: $ go get gopkg.in/matm/scytale.v1
工具
bin/aesenc和bin/aeszip CLI
工具
允许使用在运行的 -256文件
加密
,(PBE)和基于
密码
的密钥派生功能。 前者可
用于
加密
/解密单个文件: $ go ...
RSA
加密
算法提供商BouncyCastleProvider
RSA
加密
算法是公钥
密码
学中的一个重要组成部分,它由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这种算法基于大整数因子分解的困难性,使得只有拥有正确密钥的人才能解密信息,从而保证了...
用Get
方式
提交
信息
加密
解密
在js中可以使用escape(), encodeURL(), encodeURIComponent(),三种方法都有一些不会被编码的符号:escape():@ * / +encodeURL():! @ # $& * ( ) = : / ; ? + ‘encodeURIComponent():! * ( ) ‘在java端可以使用...
java
加密
解密
工具
类(EncryptUtils)
是一个自定义的 Java
工具
类,
用于
封装常见的
加密
和解密算法,如 MD5、SHA-1、SHA-256、AES、DES 等。...EncryptUtils是一个Java
加密
解密
工具
类,它提供了一些常用的
加密
解密
算法,可以
用于
保护敏感数据的安全性。
Java常用的
加密
解密
工具
类
工具
类的名称:EncryptionUtil
工具
类的功能:提供常用的
加密
解密
方法,包括对称
加密
、非对称
加密
、哈希算法等。
Java
51,397
社区成员
85,848
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章