当前位置: 首页 > news >正文

湛江网站制作推广正规的国内网站建设公司

湛江网站制作推广,正规的国内网站建设公司,如何做网站系统,建设部网站最新消息序 本文主要研究一下PBE算法 PBE PBE即Password Based Encryption,基于口令的加密,它是一种组合算法,即一般是哈希对称算法,比如PBEWithMD5AndDES,就是用MD5做哈希,用DES做加解密,而其密钥则…

本文主要研究一下PBE算法

PBE

PBE即Password Based Encryption,基于口令的加密,它是一种组合算法,即一般是哈希+对称算法,比如PBEWithMD5AndDES,就是用MD5做哈希,用DES做加解密,而其密钥则是口令+salt基于哈希函数计算而来

java示例

    public void testPBEWithIvParameter() throws NoSuchPaddingException, NoSuchAlgorithmException, IllegalBlockSizeException, BadPaddingException, InvalidAlgorithmParameterException, InvalidKeyException, InvalidKeySpecException {String algorithm = "PBEWithMD5AndDES";char[] passwd = "123456".toCharArray();PBEKeySpec pbeKeySpec = new PBEKeySpec(passwd);SecretKeyFactory kf = SecretKeyFactory.getInstance(algorithm);SecretKey key = kf.generateSecret(pbeKeySpec);byte[] salt = new byte[8];Random random = new Random();random.nextBytes(salt);Cipher cp = Cipher.getInstance(algorithm);IvParameterSpec iv = new IvParameterSpec(RandomUtil.randomBytes(16));PBEParameterSpec pbeParameterSpec = new PBEParameterSpec(salt, 1000, iv);cp.init(Cipher.ENCRYPT_MODE, key, pbeParameterSpec);byte[] data = "helloworld".getBytes(StandardCharsets.UTF_8);byte[] encrypted = cp.doFinal(data);System.out.println(Base64.encode(encrypted));Cipher cpDecrypt = Cipher.getInstance(algorithm);cpDecrypt.init(Cipher.DECRYPT_MODE, key, pbeParameterSpec);byte[] decryptBytes = cpDecrypt.doFinal(encrypted);System.out.println(new String(decryptBytes));}

几个参数,一个是口令,即passwd,一个是salt,随机盐值,一个是ivParameter

golang示例

func Encrypt(message string, password string, salt []byte) (string, error) {keyObtentionIterations := 1000md5key, iv := getMd5DerivedKey(password, salt, keyObtentionIterations)encrypted, err := desEncrypt([]byte(message), md5key, iv)if err != nil {return "", err}result := encryptedif includePlainIvInEncryptionResults() {result = append(iv, result...)}if includePlainSaltInEncryptionResults() {result = append(salt, result...)}return base64.StdEncoding.EncodeToString(result), nil
}

小结

  • PBE即Password Based Encryption,基于口令的加密,它是一种组合算法,即一般是哈希+对称算法,比如PBEWithMD5AndDES,就是用MD5做哈希,用DES做加解密,而其密钥则是口令+salt基于哈希函数计算而来
  • 当使用固定salt和不使用ivParameter的DES的时候,同一个值,每次加密生成的密文是一样的,而使用随机salt和随机iv的时候,每次生成的密文是不一样的,这个时候密文会包含随机的salt和iv信息,在解密的时候能够正确解出明文
http://www.yayakq.cn/news/401592/

相关文章:

  • 做微信请帖网站开发一个app成本
  • 阿盟住房与建设局门户网站北京做电子系统网站的公司
  • 国外网站阻止国内访问怎么做win2003创建网站
  • 计算机课程网站建设实训报告总结食品包装设计公司哪家好
  • 做新闻微网站有哪些先做网站还是先做天猫
  • 湖南新备案的网站零基础学室内设计
  • 移动端网站开发教程网站404页面制作方法
  • 蓝色phpcms律师网站模板phpcms律师0基础网站开发
  • 企业建设网站的好处有哪些视频优化软件
  • 青海住房城乡建设厅网站汉沽做网站
  • 广东住房和城乡建设厅网站造价wordpress 点击数
  • 焦作市网站建设科技网站风格的设计原则
  • wap网站登陆系统衡水景县专业做淘宝网站公司
  • 网站怎么样做不违规app开发的公司
  • 建网站 考虑大学网站建设课程课综
  • 帝国和织梦那个做企业网站好遂宁市建设银行网站
  • 自己做的旅游网站简介英文书 影印版 网站开发
  • 建站之星官网建设福建省头条新闻
  • 好设计英文网站网站轮播图制作
  • 旅游推荐网站怎么做什么是网站的二级目录下
  • 应税服务网站开发开票怎么破解wordpress图片防盗链
  • 德阳做网站公司网站建设与运营 试题
  • 建筑网站制作wordpress 修改主题名
  • 沈阳网站订制设计企业展厅的公司
  • 嘉定网站制作盗号和做钓鱼网站那个罪严重
  • 做网站设计需要多久太原网站建设网格未来
  • 建设的网站如何让用户注册WordPress命令执行漏洞
  • 企业网站推广策划方法建设网站制作哪家好
  • vr看房网站开发费用自建站公司
  • 东莞网站优化专门做游轮的网站