MD5码加密

Loadrunner实现MD5码加密 char oriStr[1024]; char md5Str[32]; strcpy( oriStr, lr_eval_string("abcdefg") ); //需加密字符串内容 strcpy( md5Str, getoutmd5(oriStr) ); //lr_output_message(md5Str); lr_save_string( md5Str, "MA 阅读详情
java.security.MessageDigest

public static String toMD5(String plainText) {


MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
throw new RuntimeException("MD5 error:", e);
}
messageDigest.update(plainText.getBytes());
byte by[] = messageDigest.digest();


StringBuffer buf = new StringBuffer();
int val;
for (int i = 0; i < by.length; i++) {
val = by[i];
if (val < 0) {
val += 256;
} else if (val < 16) {
buf.append("0");
}
buf.append(Integer.toHexString(val));
}
return buf.toString().toUpperCase();
}







/**
* 字符串加密以及解密函数
* 
* @param string
*            string 原文或者密文
* @param string
*            operation 操作(ENCODE | DECODE), 默认为 DECODE
* @param string
*            key 密钥
* @param int
*            expiry 密文有效期, 加密时候有效, 单位 秒,0 为永久有效
* @return string 处理后的 原文或者 经过 base64_encode 处理后的密文
* 
* @example
* 
* a = authcode('abc', 'ENCODE', 'key'); b = authcode( a, 'DECODE', 'key'); //
* b(abc)
* 
* a = authcode('abc', 'ENCODE', 'key', 3600); b = authcode('abc', 'DECODE',
* 'key'); // 在一个小时内, b(abc),否则 b 为空
*/
private String uc_authcode(String string, String operation, String key,
int expiry) {


// ckey_length 随机密钥长度 取值 0-32;
// ckey_length 加入随机密钥,可以令密文无任何规律,即便是原文和密钥完全相同,加密结果也会每次不同,增大破解难度。
// ckey_length 取值越大,密文变动规律越大,密文变化 = 16 的 ckey_length 次方
// ckey_length 当此值为 0 时,则不产生随机密钥
int ckey_length = 1;


key = md5(key != null ? key : UC_KEY);
String keya = md5(substr(key, 0, 16));
String keyb = md5(substr(key, 16, 16));
// String keyc = ckey_length > 0? ( operation.equals("DECODE") ? substr(
// string, 0, ckey_length): substr(md5(microtime()), - ckey_length)) :
// "";
String keyc = "a";


String cryptkey = keya + md5(keya + keyc);
int key_length = cryptkey.length();


string = operation.equals("DECODE") ? base64_decode(substr(string,
ckey_length)) : sprintf("%010d", expiry > 0 ? expiry : 0)
+ substr(md5(string + keyb), 0, 16) + string;
int string_length = string.length();


StringBuffer result1 = new StringBuffer();


int[] box = new int[256];
for (int i = 0; i < 256; i++) {
box[i] = i;
}


int[] rndkey = new int[256];
for (int i = 0; i <= 255; i++) {
rndkey[i] = (int) cryptkey.charAt(i % key_length);
}


int j = 0;
for (int i = 0; i < 256; i++) {
j = (j + box[i] + rndkey[i]) % 256;
int tmp = box[i];
box[i] = box[j];
box[j] = tmp;
}


j = 0;
int a = 0;
for (int i = 0; i < string_length; i++) {
a = (a + 1) % 256;
j = (j + box[a]) % 256;
int tmp = box[a];
box[a] = box[j];
box[j] = tmp;


result1
.append((char) (((int) string.charAt(i)) ^ (box[(box[a] + box[j]) % 256])));


}


if (operation.equals("DECODE")) {
String result = result1.substring(0, result1.length());
if ((Integer.parseInt(substr(result.toString(), 0, 10)) == 0 || Long
.parseLong(substr(result.toString(), 0, 10)) > 0)
&& substr(result.toString(), 10, 16).equals(
substr(md5(substr(result.toString(), 26) + keyb),
0, 16))) {
return substr(result.toString(), 26);
} else {
return "";
}
} else {
return keyc + base64_encode(result1.toString()).replaceAll("=", "");
}
}
MD5加密代码 最常用的加密了,其实还是不错的,如果项目所需的安全级别较高,不建议使用 立即下载

相关推荐

JAVA版的authcode

康盛的discuz 里有一个authcode由于其优秀的表现立刻受到广大PHPER的青睐,现在它已经跳出PHP领域,几乎成为字符加密的标准(有点夸张哈哈)。 我的资源包中有两个文件 Base64.java Authcode.java 我只是对代码进行整理。原始代码来自互联网。 这两个文件都要用,因为authcode中需要用到BASE64。 说个重要的地方 因为标准的BASE64加密后的字符的长度可以被4整除,不能整除的都通过“=”来补充。PHP自带的decode_base64()函数可以解密标准的BASE64也可以解密长度不能被4整除的BASE64,authcode是在PHP环境中开发,所以没有考虑到非标准的情况。这样在移植到JAVA中,需要写一个可以解密标准和非标准BASE64的方法,,我是在互联网上收集到的BASE64加密解密功能,然后又为其扩充了解密非标准BASE64的功能(其实就是为其补充“=”,使其长度可以被4整除),这样就可以加密解密authcode,而且与PHP互通,加密后的字符不带“=”,看着比较整洁。

md5加密算法

理解md5

LUOZONGW的博客 9694

Keil调试技巧:3种方法查看Cortex-M4的SCB寄存器(含CPUID内存映射解析)

本文详细介绍了在Keil MDK中查看Cortex-M4内核SCB寄存器的三种实战方法:使用Watch窗口进行符号化观察、通过Memory窗口直接查看物理内存映射,以及利用SFR寄存器浏览器解析位域信息。文章重点解析了CPUID寄存器的内存映射地址(0xE000ED00)及其位域含义,帮助开发者深入理解处理器身份识别与底层调试技巧,提升嵌入式系统调试效率。

h6i7j8的博客 573

MD5数据加密方法

什么场景需要使用数据加密呢?比如秘密数据传输、用户密码加密存储等等数据传输可使用密钥对的方式进行加密解密,使用签名方式验证数据是否可靠,而密码加密存储可使用MD5等一些算法对数据进行单向加密。

weixin_52115456的博客 2万+

tkinter表格进阶:5分钟实现CSV数据可视化编辑界面(含右键菜单配置)

本文详细介绍了如何使用Python的tkintertable库快速构建CSV数据可视化编辑界面。通过导入导出CSV数据、深度定制右键菜单(如复制、插入行、删除行)以及实现单元格验证等进阶功能,开发者能在5分钟内创建一个可嵌入自动化流程的专业级桌面数据编辑工具,显著提升数据处理效率。

931

嵌套交叉验证的‘双循环’哲学:为什么你的模型评估总是不准?

本文深入探讨了嵌套交叉验证(Nested Cross-Validation)在机器学习模型评估中的关键作用,揭示了传统交叉验证方法存在的偏差问题。通过双重循环设计,嵌套交叉验证有效隔离数据,提供无偏评估,显著提升模型在真实场景中的性能预测准确性。文章还提供了工程实践中的优化策略和量化分析,帮助开发者在计算成本与评估精度之间找到平衡。

b3n4m5q6w7的博客 226

Md5码的生成及变种Md5码的生成

新建一个方法生成Md5码,将给出参数字符串生成Md5码 public String stringTo32Md5(String str) { String md5 = null; if (str != null &amp;&amp; str.length() != 0) { try { MessageDigest md = MessageDigest.getInstance("MD...

ynzcxx的博客 6175

方差分解分析变量筛选与显著性计算

冗余分析(redundancy analysis,RDA)是一种回归分析结合主成分分析的排序方法,也是多响应变量(multiresponse)回归分析的拓展。在进行VPA时,首先就要对这些环境因子进行一个分类,然后在约束其它类环境因子的情况下,对某一类环境因子进行排序分析,这种分析也成为偏分析,即partialRDA。在地球环境科学的实际应用中,可以基于VPA结果得出不同类型的环境因素(如何气候、土壤性质以及植物)对生物群落组成(如植被丰度,微生物群落)的解释程度。对于由或创建的排序对象,函数。

wlh2067的博客 2521

Java中MD5加密详细指南

本指南详细介绍了Java中MD5加密的方方面面,包括:基础实现原理和代码文件校验和大数据处理方法安全性增强技术(加盐、多重哈希)性能优化技巧安全注意事项和替代方案完整工具类实现测试用例。

weixin_52578852的博客 6260

别再只用跳层连接了!手把手教你用DASI和MDCR模块提升红外小目标检测精度

本文详细介绍了如何利用DASI和MDCR模块提升红外小目标检测精度。通过分析传统跳层连接的缺陷,提出维度感知的特征选择性融合(DASI)和多尺度感受野精炼器(MDCR)的创新方案,显著提升小目标检测性能。实验证明,该方法在多个场景下AP@0.5提升达15.4%,特别适用于安防监控和遥感图像分析。

weixin_28715081的博客 224

开关变换器小信号建模实战:从理论到环路设计

本文深入探讨了开关变换器小信号建模的实战技巧,从理论基础到环路设计全面解析。通过Buck和Boost变换器的具体案例,详细介绍了状态空间平均法、扰动法等关键建模技术,并分享环路补偿设计和实际调试中的宝贵经验。文章特别强调了小信号建模在电源设计中的重要性,为工程师提供了从理论到实践的完整解决方案。

weixin_29290259的博客 377

【Java】使用MD5进行加密解密(代码实现)

我们的,对于用户来说,不应该知道我们的在正式环境,我们的数据需要通过网络传输,必须要保证明文:加密之前的内容,原始内容暗文:加密之后的内容公钥:可见的公共的钥匙私钥:不可见的私有的钥匙作用:一般对登录密码处理,用于做密码比对问题:只能加密,不能解密,特征:1. 可以加密,也可以解密2. 加密和解密的密钥是同一个作用:对数据库密码进行加密,秘钥为k,加密:s = AES(k,c)解密:c = AES(k,s)问题:1. 数据可能会被其他人2. 数据可能会。

m0_64210833的博客 4万+

使用 MATLAB/Simulink 构建一个电机-液压联合控制系统的仿真模型

本文详细介绍了基于Simulink的电机与液压执行机构联合控制系统建模方法。通过7个步骤,系统讲解了从创建项目、搭建PMSM电机模型、建立逆变器与矢量控制模块,到构建液压泵和执行机构模型的完整过程。重点展示了如何设置关键参数、添加测量反馈模块,并提供了实用的代码片段。教程还包含仿真运行流程、结果分析指标及进阶建议,帮助读者掌握多物理场耦合系统建模的核心技术。该方法适用于机电液一体化系统设计,为工程实践提供有效参考。

amy_mhd的博客 613

MD5加密 生成32位md5码

package net.joystart.common.util.security; import java.security.MessageDigest; /** * 加密算法工具类 * @author LDY20151214 * */ public class EncryptionUtil { /*** * MD5加密 生成3...

diaokang2511的博客 392

【FF-A】第二章 Introduction

Armv8.4 架构引入了在安全状态下的虚拟化扩展。Arm® SMMU v3.2 架构[1]为安全流添加了对第2阶段翻译的支持,以补充在 Armv8.4 处理器状态下的安全 EL2 翻译制度。这些架构特性使得在安全状态下,彼此不信任的软件组件能够相互隔离。关于在安全状态下引入虚拟化扩展以及固件框架目标的更多理念可在名为《在安全世界使用虚拟化进行隔离》的白皮书[3]中找到。软件组件只能访问物理地址空间和系统资源的区域,例如 GIC 中对其正确运行必要的中断。

baron-周贺贺-代码改变世界ctw 528

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

DigestUtils调用md5Hex对用一个输入流连续加密返回不同md5码

关于org.apache.commons.codec.digest.DigestUtils的这个类,对一个输入流连续的进行两次加密,输出的MD5码不同,如果多次连续加密,则除过第一次得到的MD5码都一致 前一段儿时间在公司写接口的项目,webservice的那种,中途碰到一个问题。具体情况是别的公司调用我们的接口上传一些数据,其中设计到MD5码加密的问题,传过来文件及MD5码,然...

qq_40755652的博客 8887

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C# 参数按照ASCII码从小到大排序MD5加密

【代码】C# 参数按照ASCII码从小到大排序MD5加密。

DotNetFamily 2651

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Python使用MD5码加密手机号等敏感信息

python对手机号进行MD5加密

weixin_46277779的博客 668

md5码加密——java代码实现,sql实现

Java代码实现,输出为32为md5码 private static String MD5(String key) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; try { ...

weixin_30521649的博客 214

ts加密md5码封装

tsconfig.json { "compilerOptions": { "module": "commonjs", "target": "es6", "sourceMap": true }, "exclude": [ "node_modules" ] } test: let str = Md5.Instance.get_md5("123456")...

github_37759996的博客 9189

md5码加密:java生成MD5码

1原生 package com.pibigstar.common.utils; import java.security.MessageDigest; /** * MD5加密工具类 * @author pibigstar * */ public class MyMD5Util { //盐,用于混交md5 private static final String slat = "&am...

韩韩的博客 543

C# DES对称加密解密方法-加密后以生成MD5码方式返回

#region DES 加密解密 //DES加密的私钥,必须是8位长的字符串 private static string _desKey = "jn$w90iK"; //DES加密偏移量,必须是>=8位长的字符串 private static string _desIv = "NG8Ut*bc8B42J4rSy*zoV0#0l$&Min0T"; /// <summary&gt...

上官飞蓬的博客 877

ASCII码排序及md5加密

import hashlibdata = { "app_key": "25617551", "fields": "cid,parent_cid,name,is_parent", "format": "json", "method ": "taobao.item.seller.get", "parent_cid": "0", "sign_method ": "md...

weixin_30408309的博客 577

Android——MD5加密,获取MD5码

近期经常做一些需要进行验证的工作,比方说下载的文件需要在下载下来后进行一下MD5校验,看看是不是完全下载下来的。还有就是用MD5进行一些加密操作,比方说网络参数,传入的使一些MD5码加密过的字符串等等。 下面就对经常用到的MD5加密解密字符串进行一下整理,只是提供参考,非喜勿喷,谢谢!(log日志打印是我自己重新封装的,直接忽略即可) import java.io.File; import j

1241
上一篇: 一行数据过长,自动隐藏一部分数据样式
下一篇: java在windows和linux系统中通用的路径符号"//"
myheartjava
博客等级 码龄14年 6粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值