社区
Java
帖子详情
求简单加密解密工具,用于加密以get方式提交的密码!
马行空牛耕田
2004-11-12 11:27:59
环境:以get方式提交的密码,即密码写在url中里
要求:加密方式简单,加密后的密码和原密码长度区别不大,最好是等长;且都为字母,因为要写在url中。
...全文
465
19
打赏
收藏
求简单加密解密工具,用于加密以get方式提交的密码!
环境:以get方式提交的密码,即密码写在url中里 要求:加密方式简单,加密后的密码和原密码长度区别不大,最好是等长;且都为字母,因为要写在url中。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
我顶,我顶
用Get
方式
提交
信息
加密
解密
本文介绍了JavaScript中的三种URL编码方法:escape(), encodeURI(), 和 encodeURIComponent()。详细解释了每种方法不进行编码的特殊字符,并提供了Java端解码示例。
IOS开发之网络编程(GET/POST、钥匙串、
加密
)
本文详细介绍了HTTP协议中的GET和POST请
求
方法,包括它们的区别、应用场景以及效率和安全性。同时,探讨了
加密
解密
技术,如对称与非对称算法、MD5散列以及在实际应用中的
密码
安全策略。最后提到了本地
密码
存储的安全解决方案——钥匙串,并展示了如何使用第三方库SSKeychain进行操作。
Vue前端
加密
解密
实战:CryptoJS集成与安全数据传输方案
本文详解在Vue项目中集成CryptoJS实现前端
加密
解密
的完整方案,涵盖AES对称
加密
、SHA-256
密码
哈希等核心场景,强调密钥安全管理(环境变量注入、动态密钥获取)、前后端加解密参数一致性(KEY/IV/模式/填充),并提供Vuex/Pinia集中管理、URL编码避坑、性能优化及CSP安全加固等实践要点。
在线HTTP POST/GET接口测试
工具
- aTool在线
工具
这是一个
用于
测试HTTP接口的在线
工具
,支持GET和POST请
求
测试,并提供响应值和接口响应时间等信息。
AI生成代码安全审查:Seed-Coder-8B-Base
加密
解密
实现深度剖析
本文针对Seed-Coder-8B-Base生成的
加密
解密
代码,提出四层安全审查框架:算法与协议合规性、代码实现缺陷、上下文与配置、业务逻辑误用。涵盖静态分析(SonarQube、Semgrep)、人工审阅和动态验证三阶段流程,并强调密钥管理、认证
加密
模式(如GCM)、侧信道防护及CI/CD集成实践,确保AI生成
密码
学代码符合现代安全标准。
Java
51,408
社区成员
86,093
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章