700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php中关于AES加密对应Java中的SHA1PRNG方式加密的实例详解

php中关于AES加密对应Java中的SHA1PRNG方式加密的实例详解

时间:2023-07-05 19:50:36

相关推荐

php中关于AES加密对应Java中的SHA1PRNG方式加密的实例详解

后端开发|php教程

Java,php,中的

后端开发-php教程

做对接的时候,服务商做的AES加密通过SHA1PRNG算法(只要password一样,每次生成的数组都是一样的,所以可以用来做加密解密的key)进行了又一次加密,搞了好几个小时,直接看对应的代码吧,可以参考一下,只有Java的加密源码

安卓 商城app 源码下载,ubuntu搜索某个文件,tomcat7网页打不开,scrapy爬虫代码下载,PHP处理百度百科,后期seo标准lzw

开源门户网站源码下载,vscode代码对齐虚线,ubuntu装dlib,tomcat证书怎么配,sqlite相同的两个数,不能复制的内容能用爬虫爬取吗,php判断文件夹存在,seo对用户的优化,手机网站 图片缩放,wordpress学校模板lzw

private static byte[] encrypt(byte[] byteContent, byte[] password) throws Exception { KeyGenerator kgen = KeyGenerator.getInstance("AES"); SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); secureRandom.setSeed(password); kgen.init(128, secureRandom); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(1, key); byte[] result = cipher.doFinal(byteContent); return result; }

asp响应式企业站源码下载,vscode自动生成模板,Ubuntu装凤凰,tomcat 源码启动类,爬虫 人肉,php 获取字符长度,阜新seo优化排名价格,电影网站模板源代码,helsinki模板lzw

private function _pkcs5Pad($text, $blockSize) { $pad = $blockSize - (strlen($text) % $blockSize); return $text . str_repeat(chr($pad), $pad); } private function _pkcs5Unpad($text) { $end = substr($text, -1); $last = ord($end); $len = strlen($text) - $last; if(substr($text, $len) == str_repeat($end, $last)) { return substr($text, 0, $len); } return false; } public function encrypt($encrypt, $key) { $blockSize = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $paddedData = $this->_pkcs5Pad($encrypt, $blockSize); $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND); $key2 = substr(openssl_digest(openssl_digest($key, sha1, true), sha1, true), 0, 16); $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key2, $paddedData, MCRYPT_MODE_ECB, $iv); return base64_encode($encrypted); } public function decrypt($decrypt, $key) { $decoded = $this->hex2bin($decrypt); $blockSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($blockSize, MCRYPT_RAND); $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $decoded, MCRYPT_MODE_ECB, $iv); return $this->_pkcs5Unpad($decrypted); } function hex2bin($str) { $sbin = ""; $len = strlen($str); for($i = 0; $i < $len; $i += 2) { $sbin .= pack("H*", substr($str, $i, 2)); } return $sbin; }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。