• 著名加密库收集 Encrypt


     CryptoAPI

    微软的CryptoAPI

    crypt32.lib,advapi32.lib,cryptui.lib

    #include <wincrypt.h>
    #include <cryptuiapi.h>

    CryptAcquireContext
    CryptReleaseContext
    
    CryptCreateHash
    CryptHashData
    CryptDestroyHash
    CryptEncrypt
    CryptDecrypt
    View Code

     支持md2,md4,md5,sha,sha1,mac,des,3des...

    api,every development language can use this function!

    http://www.programlife.net/windows-cryptoapi-calc-md5.html

    https://msdn.microsoft.com/en-us/library/ms867086.aspx

    cryptlib

    https://www.cs.auckland.ac.nz/~pgut001/cryptlib/

    http://www.cypherpunks.to/~peter/cl343_beta.zip

    新西兰人开发,

    Peter Gutmann 设计

    for c .

    delphi by activex

    Crypto++® Library 5.6.2

    http://www.cryptopp.com/

     c++设计

    OpenSSL库

    http://www.openssl.org/docs/crypto/crypto.html

    eg. http://blog.csdn.net/lostaway/article/details/7496189

    由SSleay发展而来,文档严重不足

    by c 语言开发

    TurboPower LockBox 3

    http://lockbox.seanbdurkin.id.au/HomePage

    http://lockbox.seanbdurkin.id.au/Grok+TurboPower+LockBox

    https://github.com/SeanBDurkin/tplockbox

    libeay32.dll

    v3.6.2 ,2015.4.29,for xe7

     for delphi Component

    •  Support for Win32, Win64, Android, iOS, and OS X. 

    TCodec, TCryptographicLibrary, THash, TOpenSSL_Codec, TOpenSSL_Signatory,TSignatory

     用的是哪一种填充方式?

    最终无法确定填充方式,改用aes源码解决了与java、.net、网站在线加密 互相识别的AES算法

    DCPcrypt

    DCPcrypt Cryptographic Component Library v2.1 

    http://www.cityinthesky.co.uk/opensource/

    TDCP_md5

    self.DCP_blowfish1.EncryptStream()

    for delphi Component DAvid Barton 2002

    3DES、Blowfish、Cast128、DES、Ice、Ice2、RC2、RC4、Rijndael、Serpent、Tea、Thin Ice、Twofish; but not aes

    Haval (256bit, 5 passes)、MD4、MD5、RipeMD-128、RipeMD-160、SHA1、SHA256、SHA384、SHA512、Tiger、

    2014.10 for xe5

     Easy Crypt

    http://rapware.nl/index.php?page=download

    Netherlands,荷兰开发,support xe8 ,本质上是对microsoft CryptoAPI 封装。v6.1.1

    Rijndael (AES), 3DES, DES, MAC, HMAC, RC2, RC4, RC5, MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512 and RSA.

    TRwMemoryCertStore
    TRwSystemCertStore
    TRwCSP

     Caption := self.RwCSP1.HashAnsiString('ww', TRwBinEncoding.beHexEncoded);

    RwCSP1.EncryptStream

    for delphi Component

     ksaiy

    http://www.ksaiy.com

    http://www.magicoa.com 

    but not find 

    pslab 

    http://www.pefine.com/crackme.htm

    delphi的案例已经不支持unicode,Ansitring下没有问题!

    sql server 2008 support :

    MD2 | MD4 | MD5 | SHA | SHA1

    select HASHBYTES('MD5','中国');
    select SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('MD5','中国')),3,32)

    https://msdn.microsoft.com/en-us/library/ms174415(v=sql.105).aspx

    非对称 推荐 aes,blowfish 

    模式

    ECB / CBC / CFB / OFB 

    ECB的缺陷:能从密文看出明文的规律

    加 密算法是按块进行加密的, DES ,是 64Bit 一个块的进行加密,就是每次加密 8 个字节,因此每次输入八个字节的明文输出八个字节密文,如果是 16 个字节,那么分成两个块依次进行加密,问题就出现在这里,如果明文是 1234567812345678,分块分别进行加密,那么加密的结果类似“C4132737962C519C C4132737962C519C”,可以看出明文的规律,这就是 ECB 加密模式,密文可以看出明文的规律

    CBC/CFB/OFB:

    为 了解决这个问题,有了其他的加密模式:CBC 加密模式(密码分组连接),CFB加密模式(密码反馈模式),OFB加密模式(输出反馈模式)CBC 是要求给一个初始化的向量,然后将每个输出与该向量作运算,并将运算的结果作为下一个加密块的初始化向量,CFB 和 OFB 则不需要提供初始化向量,直接将密码或者输出作为初始化向量进行运算;这样就避免了明文的规律出现在密文中;当然缺点是解密时需要保证密文的正确性,如果 网络传输时发生了一部分错误,则后面的解密结果就可能是错误的;(ECB模式仅影响传输错误的那个块);

    填充

    NoPadding、PKCS5Padding、PKCS7Padding、ISO10126Padding、zeropading          

    JAVA

    NoPadding、PKCS5Padding

       

     默认是PKCS5Padding

    明文长度  密文长度

    1..7  8

    8..15  16

    16..31  32

     http://tool.chacuo.net/cryptblowfish

    这个最强

    http://blog.csdn.net/kunlun122/article/details/29270219

  • 相关阅读:
    数组
    2022杭电多校部分好题题解(更新至Day 10)
    js入门
    JS数据类型转换
    python赚钱小秘籍每日打新提醒
    jenkins+github+python执行测试用例
    python网络编程socket基础
    Dockerfile介绍与实操
    Docker部署jenkins详细过程
    Faker生成范围内的随机时间格式
  • 原文地址:https://www.cnblogs.com/cb168/p/4677245.html
Copyright © 2020-2023  润新知