精华内容
下载资源
问答
  • 通过页面引入文件,可以通过js实现用户密码加密md5最新资源
  • excel自动使用md5加密

    2018-08-30 15:09:41
    使用描述链接https://blog.csdn.net/biooss/article/details/82221778
  • Android 采用MD5注册登录,加密解密 https://blog.csdn.net/qq_31939617/article/details/80728459
  • 支持中文的md5加密,下载好直接放在项目中,新建md5.js文件,直接复制到项目的utils/md5.js即可
  • AES使用java和js互相加解密及前端MD5加密,java后台加密前端js解密,或前端js加密,后端java解密,
  • Django的MD5加密使用方法

    千次阅读 2019-03-04 19:18:13
    import hashlib #1,首先引入hashlib模块 def password_encrypt(pwd): md5 = hashlib.md5() # 2,实例化md5() 方法 ... md5.update(pwd.encode()) # 3,对字符串的字节类型加密 result = md5.hexdigest...

    import hashlib    #1,首先引入hashlib模块

    def password_encrypt(pwd):

            md5 = hashlib.md5()       # 2,实例化md5() 方法

            md5.update(pwd.encode())      # 3,对字符串的字节类型加密

            result = md5.hexdigest()        # 4,加密

            return result

    展开全文
  • md5加密解密js文件

    2018-08-21 11:42:14
    用于md5加密解密,详细使用方法链接:https://blog.csdn.net/qq_35713752/article/details/81904958
  • Excel使用Md5加密宏与使用范例
  • md5加密所需jar包

    2018-08-28 17:45:33
    md5加密所需要的jar包,加密使用,配合https://blog.csdn.net/weixin_42567169/article/details/82151235使用
  • Golang MD5 加密使用方法

    千次阅读 2018-11-20 15:32:00
    h := md5.New() h.Write(data) output := h.Sum(nil) fmt.Println(fmt.Sprintf("%x",output)) 结果: e10adc3949ba59abbe56e057f20f883e 用法二: str:="123456" data:=[]byte(str) has:=md5.Sum(data) md...

    用法一:

    str:="123456"
    
    data:=[]byte(str)
    h := md5.New()
    h.Write(data)
    output := h.Sum(nil)
    fmt.Println(fmt.Sprintf("%x",output))

    结果: e10adc3949ba59abbe56e057f20f883e

    用法二:

    str:="123456"
    data:=[]byte(str)
    has:=md5.Sum(data)
    md5str1 :=fmt.Sprintf("%x",has)
    //将[]byte转成16进制
    fmt.Println(md5str1)

    结果: e10adc3949ba59abbe56e057f20f883e

    用法三:

    str:="123456"
    w:=md5.New()
    io.WriteString(w,str)
    //将str写入到w中
    md5str2:=fmt.Sprintf("%x",w.Sum(nil))
    //w.Sum(nil)将w的hash转成[]byte格式
    fmt.Println(md5str2)

    结果: e10adc3949ba59abbe56e057f20f883e

     

    本人微信:  本人QQ:

    转载于:https://my.oschina.net/lwkai/blog/2878777

    展开全文
  • js前台md5加密

    2016-07-13 14:50:13
    js前台md5加密示例html和md5.js文件。 <!DOCTYPE HTML> <title>md5加密 <script type="text/ecmascript" src="md5.js"> <script type="text/javascript"> var hash = hex_md5("123dafd"); alert(hash) ...
  • md5加密需要的jar包

    2018-08-31 14:59:19
    md5算法需要的jar包,直接导入的lib文件夹下可以直接使用,按照上述步骤即可对文件内容进行加密比较。
  • JAVA的hex_md5加密

    2018-09-16 20:50:30
    java中的MD532位加密。将java类放入项目中,使用encrypByMd5静态方法即可生成hex_md5 32位加密的字符串。
  • 在JS中使用MD5加密

    千次阅读 2021-01-10 21:23:59
    由于原生的javascript中没有md5加密的函数,所以我们这里要借用一个js的md5加密插件blueimp_md5

    blueimp_md5

    由于原生的javascript中没有md5加密的函数,所以我们这里要借用一个js的md5加密插件blueimp_md5


    简单使用

    1. 在HTML文件引入
    <script src="js/md5.min.js"></script>
    
    1. 在应用程序代码中,通过使用字符串作为参数调用md5方法来计算字符串的(十六进制编码)md5哈希
    let hash = md5("value"); // "2063c1608d6e0baf80249c42e2be5804"
    
    //当然我们也嵌套使用
    let hash2 = md5(md5('value')); //"5d638088db991347a4403e4ee407a0f7"
    

    前端学习交流QQ群,群内学习讨论的氛围很好,大佬云集,期待您的加入:862748629 点击加入

    展开全文
  • iOS 加密算法之MD5加密使用

    千次阅读 2016-07-01 16:29:17
    软件开发过程中,对数据进行加密是保证数据安全的重要手段,常见的加密有Base64加密MD5加密。Base64加密是可逆的,MD5加密目前来说一般是不可逆的。我们在开发一款iOS App过程中,对于发送的请求,其中有个“sign...

    2020.06.04编辑

    前言

    对于加密算法这个概念我的确不太清楚,虽然我知道加密算法存在的意义,但是这并不妨碍我不知道加密算法具体都有哪些。所以今天这篇文章就是了大家一起学习开发中哪些加密算法。

    在学习加密算法之前,我们先给自己提出三个问题:什么是加密算法?为什么用加密算法?怎么用加密算法?

    接下来,让我们带着这些问题开始今天的学习之旅吧!

    正文

    1. 什么是加密算法?为什么用加密算法?

    据说,公元前400年,古希腊人就发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格码”密码机,密码学在战争中起到非常重要的作用。

    就算是在那些谍战的电视剧和电影中,我们也可以感受到信息安全和保密的重要性,正所谓牵一发而动全身,信息泄露在生活中的任何一方面都有可能给当事人或集体造成巨大的打击。密码学的存在就是为了提高数据的保密性、保证数据的完整性还有用于身份验证,可以校验双方的真实性。(看到这里是不是有点点熟悉的感觉,其实这也是HTTPS的特点。)

    那么加密算法就是应用密码学的一种可以进行数据加密的算法。其中有些可以解密,有些不可解密。

    2. 怎么用加密算法?

    不同类型的加密算法使用方法也不一样,加密算法通常分为两大类:“对称式”和“非对称式”。

    2.1 对称式加密

    对称加密算法 是应用较早的加密算法,又称为 共享密钥加密算法。在对称加密算法中,使用的密钥只有一个,发送和接收双方都使用这个密钥数据进行加密解密。这就要求加密和解密方事先都必须知道密钥是什么。

    1.数据加密过程:在对称加密算法中,数据发送方明文(原始数据)和加密密钥一起经过特殊加密处理,生成复杂的加密密文进行发送。

    2.数据解密过程:数据接收方收到密文后,如果想要读取原始数据,就需要使用加密使用的密钥及相同算法的逆算法对加密的密文进行解密,才能让密文恢复成可读明文

    2.2 非对称式加密

    非对称加密算法 又称为 公开密钥加密算法。它和对称加密算法不同的是它需要两个密钥,一个称为公开密钥(public key),即公钥,一个称为私有密钥(private key),就是我们常说的私钥

    因为加密和解密使用的是两个不同的密钥,所以这种算法叫做 非对称加密算法。

    1.数据加密过程:数据发送方将明文经过某种协定好的密钥特殊加密处理,生成复杂的加密密文进行发送。

    2.数据解密过程:数据接收方收到密文后,使用对应的另一种密钥对加密的密文进行解密,将密文解密成原始数据。

    注意:

    如果使用公钥对数据进行加密,只有对应的私钥才能进行解密。

    如果使用私钥对数据进行加密,就得用对应的公钥进行解密。

    3.常见的加密算法

    3.1 MD5算法(加密不可逆)

    MD5就是Message-Digest Algorithm 5(信息-摘要算法),因为使用的是哈希函数,所以也被译为哈希算法。它的典型应用就是对一段信息产生信息摘要,以防止被篡改。严格来说,MD5不是一种加密算法而是摘要算法,因为无论是多长的输入,MD5总是会出输出长度固定为128bit的一个字符串。128bit就是128个0和1的二进制位,而在实际应用开发中,通常是以16进制输出的,所以正好就是32位的16进制,说白了也就是32个16进制的数字。MD5是一种不可逆算法,具有很高的安全性。

    iOS MD5加密的方法如下:

    #import <CommonCrypto/CommonDigest.h>
    - (NSString *)md5:(NSString *)str
    {
        const char *cStr = [str UTF8String];
        unsigned char digest[CC_MD5_DIGEST_LENGTH];//CC_MD5_DIGEST_LENGTH = 16
        CC_MD5(cStr, strlen(cStr), digest); // This is the md5 call
        NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
        for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
            [output appendFormat:@"%02x", digest[i]];
        return output;
    }

    其中%02x是格式控制符:x表示以16进制输出,02表示不足两位,前面补0。

    从代码中我们可以看出result是个字符数组,为什么我们定义容量为16呢?因为前面也讲到了MD5算法输出是128bit,一个字符是一个字节是8个bit,那么128 / 8 = 16,所以需要16个char,所以result的容量是16。

    那么为什么输出的格式一定是%02x呢?因为前面也讲到了MD5算法通常是以16进制输出的,所以就是把128个二进制的字节转换为16进制表示,每4位二进制对应一位16进制的元素,就需要32个16进制的元素,如果元素全部是0,放到char的数组中,正常是不会输出,如00001111,用%x就是16进制输出就得到f的值,就会丢失0,最后8位二进制数只表示成了1位16进制,但如果以%02x表示则输出结果是0f,正好是转换的正确结果。

    所以以上就是char[16]和%02x的来历。

    至于人们说的16位MD5加密,其实是这样的:举例如果产生的MD5加密字符串是:01234567abcdefababcdefab76543210,则16位的MD加密字符是abcdefababcdefab,也就是只是截取了中间的16位。实际上这个操作已经不是MD5加密算法所包括的,而应当是对MD5加密算法结果的二次处理。其它的64位和大小写什么的,都属于对MD5算法结果的二次处理。因为MD5算法产生的结果就是128bit,128个二进制数字。

    3.2 SHA1算法(加密不可逆)

    SHA1就是Secure Hash Algorithm 1(安全散列算法),它基于MD5,加密后的数据长度更长,对于长度小于2^{64}位的消息,SHA 1会产生一个160bit的消息摘要,比MD5多32bit,因此,SHA1比MD5的安全性更强,但是运算速度就比MD5慢了。

    基于MD5、SHA1的信息摘要特性以及不可逆(一般而言),可以被应用在检查文件完整性、数字签名等场景。

    使用方法和MD5一样,将CC_MD5变成CC_SHA1就可以啦!

    #import <CommonCrypto/CommonDigest.h>
    - (NSString*)sha1:(NSString *)str{
        const char *cStr = [str UTF8String];
        //使用对应的CC_SHA1,CC_SHA256,CC_SHA384,CC_SHA512的长度分别是20,32,48,64
        uint8_t digest[CC_SHA1_DIGEST_LENGTH];
        //使用对应的CC_SHA256,CC_SHA384,CC_SHA512
        CC_SHA1(cStr, strlen(cStr), digest);
        NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
        for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
            [output appendFormat:@"%02x", digest[i]];
        return output;
    }

    3.3 HMAC算法

    HMAC是Hash-based Message Authentication Code(哈希运算消息认证码),HMAC运算利用哈希算法(MD5、SHA1等),以一个密钥一个消息为输入,生成一个消息摘要作为输出。该算法用于登录可以实现类似QQ设备锁的功能。

    HMAC发送方和接收方都有key进行计算,而没有这把key的第三方,就无法计算出正确的散列值,这样就可以防止数据被篡改。

    #import <CommonCrypto/CommonHMAC.h>
    /*!
        @enum       CCHmacAlgorithm
        @abstract   Algorithms implemented in this module.
    
        @constant   kCCHmacAlgSHA1        HMAC with SHA1 digest
        @constant   kCCHmacAlgMD5          HMAC with MD5 digest
        @constant   kCCHmacAlgSHA256    HMAC with SHA256 digest
        @constant   kCCHmacAlgSHA384    HMAC with SHA384 digest
        @constant   kCCHmacAlgSHA512    HMAC with SHA512 digest
        @constant   kCCHmacAlgSHA224    HMAC with SHA224 digest
     */
    - (NSString *)hmacMd5:(NSString *)str key:(NSString *)key {
        const char *cStr = [str UTF8String];
        const char *kStr = [key UTF8String];
        unsigned char digest[CC_MD5_DIGEST_LENGTH];
        CCHmac(kCCHmacAlgMD5, kStr, strlen(kStr), cStr, strlen(cStr), digest);
        NSMutableString* output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
        for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i ++) {
            [output appendFormat:@"%02x", digest[i]];
        }
        return output;
    }

    3.4 AES/DES/3DES算法

    3.4.1 DES算法

    DES是Data Encryption Standard(数据加密标准),是一种对称分组密钥算法。它的密钥是一个64bit(也就是8个字节)的数据,每8位(一个字节)用作奇偶校验位,实际使用到的长度是56位,加密解密都是用同一算法。DES是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。因此,破译DES就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来搜索的话,运算次数是2^{56}次。

    DES有两种工作模式:ECB和CBC。

    将数据64位也就是8个字节进行分组对数据加密,从而得到一段或几段8个字节的密文,最后按照他们的顺序将计算得到的数据连在一起,各段数据之间互不影响,解密和加密是一样的,这是DES的ECB(电子密本方式)的工作模式。(注意:DES加密解密时要求数据长度必须从是8个字节的倍数,因此当长度不足的时候必须先进行数据填充,这里使用的填充算法根据系统的不同可能略有不同。)另一种工作模式CBC(密文分组链接方式)是在每一段加密或者解密的过程中都要与前一段的结果做一次异或操作。同时CBC模式定义了一个特殊的8字节key(初始化向量),用来和第一段的结果做异或时用。这种机制使得加密的各段数据之间有了联系。

    CBC的加密步骤如下:
    1、首先将数据按照8个字节一组进行分组得到D1D2......Dn(若数据长度不是8字节的整数倍,先进行数据填充)
    2、第一组数据D1与初始化向量I异或后的结果进行DES加密得到第一组密文C1
    3、第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C2
    4、之后的数据以此类推,得到Cn
    5、按顺序连为C1C2C3......Cn即为加密结果。

    CBC的解密步骤如下:
    1、首先将数据按照8个字节一组进行分组得到C1C2C3......Cn
    2、将第一组数据进行解密后与初始化向量I进行异或得到第一组明文D1(注意:一定是先解密再异或)
    3、将第二组数据C2进行解密后与第一组密文数据进行异或得到第二组数据D2
    4、之后依此类推,得到Dn
    5、按顺序连为D1D2D3......Dn即为解密结果。

    注意:解密的结果并不一定是我们原来的加密数据,可能还含有你补得位,一定要把补位去掉才是原来的数据。)

    #import <CommonCrypto/CommonCryptor.h>
    //DES算法的CBC模式
    - (NSString *)des:(NSString *)str key:(NSString *)key andiv:(NSString *)iv
    {
        NSData *strData = [str dataUsingEncoding:NSUTF8StringEncoding];
        NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding];
        //这个iv 是DES加密的初始化向量,可以用和密钥一样的MD5字符
        NSData *ivData = [iv dataUsingEncoding:NSUTF8StringEncoding];
        NSInteger bufferLength = (strData.length / 1024 + 1) * 1024;
        unsigned char *buffer = (unsigned char *)malloc(bufferLength);
        memset(buffer, 0, sizeof(char) * bufferLength);
        size_t numBytesEncrypted = 0;
        CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,//加密模式 kCCDecrypt 代表解密
                kCCAlgorithmDES,//加密方式
                kCCOptionPKCS7Padding,//填充算法
                keyData.bytes, //密钥字符串
                kCCKeySizeDES,//加密位数
                ivData.bytes,//初始化向量
                strData.bytes,//明文
                strData.length,
                buffer, bufferLength,
                &numBytesEncrypted);
        NSString *ciphertext = nil;
        if (cryptStatus == kCCSuccess) {
            NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
            ciphertext = [data base64EncodedStringWithOptions:0];
            return ciphertext;
        } else {
            return nil;
        }
    }

    3.4.2 3DES算法

    3DES是Triple Data Encryption Algorithm(三重数据加密算法)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。

    是DES向AES过渡的加密算法,它使用3条64位(实际上只用到了56位)的密钥对数据进行三次加密,是DES的一个更安全的变形,它是以DES为基本模块,通过组合分组方法设计出分组加密算法。

    假如 Ek() 和 Dk() 分别代表DES的加密和解密过程。k 代表DES使用的密钥,P 代表明文,C 代表密文。

    3DES的加密过程可表示为

    C = Ek3(Dk2(Ek1(P))):用密钥1加密,然后用密钥2解密,然后用密钥3加密。

    P = Dk1(Ek2(Dk3(C))):用密钥3解密,然后用密钥2加密,然后用密钥1解密。

    注意:这里可以k1=k3,但不能k1=k2=k3(如果相等的话就成了DES算法了)。

    3.4.3 AES算法(需要密钥才能解密)

    AES是Advanced Encryption Standard(高级加密标准),又称Rijndael加密法。它采用对称分组密码体制,密钥长度的最少支持为128位,192位,256位,分组长度128位,算法应用于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准。微信小程序中的加密传输就是使用的AES加密算法。

    AES本身就是为了取代DED的,它具有更好的安全性、效率和灵活性。

    在上图中各个部分的作用:

    明文P:没有经过加密的数据。

    密钥K:用来加密明文的密码,在对称加密中,加密和解密的密钥是相同的,所以密钥要保证安全,如果一旦密钥泄漏了,那么数据就基本上不存在安全性了。

    AES加密函数:设AES加密函数为E,则C = E(K,P),其中K为密钥,C为密文。所以通过加密函数E,可以把明文+密钥生成密文。

    密文C:经过加密处理后的数据。

    AES解密函数:如加密函数一样,设AES解密函数为D,则P = D(C,P),也就是说,可以通过解密函数D,将密文+密钥生成明文。

    3.5 RSA算法(公钥加密,私钥解密)

    RSA算法是一种非对称加密算法。因为在1977年由 Ron Rivest 和 Adi Shamir 以及 Leonard Adleman一起提出的,所以他们三人姓氏开头字母组成了RSA。

    RSA是目前最具影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个能同时用于加密和数字签名的算法。它能够抵抗到目前为止已知的所有密码共计。已被ISO推荐为公钥数据加密标准。

    RSA 加密算法 基于一个十分简单的数论事实:将两个大 素数 相乘十分容易,但想要对其乘积进行 因式分解 却极其困难,因此可以将 乘积 公开作为 加密密钥。

    3.6 ECC算法

    ECC是Error Correcting Code(错误检查和纠正),它也是一种非对称加密算法。主要优势是某些情况下,它比其他的方法使用更小的密钥,比如RSA加密算法,提供相当的或者更高等级的安全级别。不过有一个缺点就是加密和解密操作的实现比其他机制时间上。相比于RSA算法,这个算法对CPU的消耗更严重些。

     

    未完待续。

    对加密算法这部分还不是很明白,如果有大牛看见这篇文章还请指导我一下。感恩。

     

    参考文章:

    iOS 使用HMAC

    iOS DES、3DES加密

    iOS开发之Objective-c的AES加密和解密算法的实现

    iOS开发-AES加密

     

    展开全文
  • C++ MD5加密封装类

    2016-01-12 14:08:27
    MD5 是message-digest algorithm 5 (信息-摘要算法)缩写,广泛用于加密和解密技术,常用于文件校验。校验?MD5是用于对信息生成信息摘要(即散列码)的算法之一。不管文件多大,经过MD5后都能生成唯一的MD5值。...
  • android用MD5加密解密简单demo
  • md5加密算法 C语言(经过测试验证完整版) 经过调试验证,与工具结果一致 MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash...
  • MD5加密需要的jar包,还包括一个小小的使用示例以供初学者参考。
  • 用jquery实现md5加密

    千次阅读 2019-01-15 14:44:41
    第一步,当然实现引入js资源文件,jquery在前,md5.js在后 &lt;script type="text/javascript" src="../js/plugins/jquery-1.10.1.min.js"&gt;&lt;/script&gt; &lt;...
  • html编写的md5加密

    2015-01-30 22:42:26
    html编写的md5加密 基于jquery
  • react-app中md5加密使用

    千次阅读 2019-02-26 12:10:31
    首先你要确保react-app环境搭建成功 第一步: npm 安装js-md5,文件根目录下安装,指令如下 npm install --save js-md5 //安装到生产环境 ...import md5 from 'js-md5' 挂载到react的原型上 React.Componen...
  • Java中实现Md5(32位)加密,此资源下载后可直接在程序中使用
  • MD5加密时指定输出编码格式

    千次阅读 2018-12-13 10:50:31
    /**  *   */ package xxxxxxxxxxxxxxxxx; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.... *@ClassName: MD5Tool  *@aut...
  • 使用JAVA代码实现MD5加密

    热门讨论 2010-06-25 00:32:22
    * 功能:对一个字符串进行md5加密 */ public class EncryptUtil { /** * 对字符串加密的方法 * @param str * @return */ public static String toMessageDigest(String str) { try { MessageDigest...
  • DELPHI7可直接使用MD5加密文件算法源代码,输入和输出均为byte格式
  • JS实现MD5加密,JS直接可调用 JS实现MD5加密,提供多种加密方法 function hex_md5(s) function b64_md5(s) function str_md5(s) function hex_hmac_md5(key, data) function b64_hmac_md5(key, data) function ...
  • java MD5加密的jar包

    2014-08-13 15:46:49
    能直接在java的应用程序中使用MD5加密实现的jar包, 调用方法:转化成MD5:MD5.getEncryptedPwd(user.getPassword()) MD5验证:MD5.validPassword(password, user.getPassword())
  • MD5加密的简单应用

    千次阅读 2019-07-03 16:51:43
    严格来说,MD5 不是一种加密算法而是摘要算法。无论是多长的输入,MD5 都会输出长度为 128bits 的一个串 (通常用 16 进制 表示为 32 个字符)。 下面是在SQLyog中使用MD5的简单语句: UPDATE USER SET PASSWORD =MD5...
  • java实现md5 加密解密

    热门讨论 2013-08-20 09:58:44
    java实现md5 加密解密(在网络中MD5是著名的不可逆算法,但是如果知道MD5加密的字符串 则可以通过自己的加密算法对明文进行加密,对加密后的密文与字符串匹配; 匹配成功,表示找到明文;但是此程序的时间耗费较高!仅...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 192,736
精华内容 77,094
关键字:

md5加密使用