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

wordpress教程 知乎seo刷点击软件

wordpress教程 知乎,seo刷点击软件,品牌理念设计企业网站建设,做食品团购去那家网站好基础算法说明 https://www.youtube.com/watch?vlnKPoWZnNNM 虽然这个视频讲的非常详细,但是涉及到具体底层算法,大致流程 1. 将数据转成HEX或者byte array 2.将数据分层一块块等大小的数据 3.将数据和key 进行一次混合,加密之后的输出&…

基础算法说明

https://www.youtube.com/watch?v=lnKPoWZnNNM

虽然这个视频讲的非常详细,但是涉及到具体底层算法,大致流程

1. 将数据转成HEX或者byte array

2.将数据分层一块块等大小的数据

3.将数据和key 进行一次混合,加密之后的输出,在生成新的key

4.将新的key和下一个数据,进行加密计算,继续重复

生成的KEY长度有128,192,256,不同的的长度对算法的速度有影响

当然key的长度越长,可能越安全这样

具体的算法是什么呢

为什么要有IV

另外这篇

https://www.youtube.com/watch?v=uWEPEBmFBHw

我们在AES的时候,有key了,为什么要IV呢

大概解释是,IV是个Ramdom的参数,不然每次用key算出来的值是一样的,

所以加上IV后,计算出来的结果会不一样。

Android上的具体AES实现

然后就是PL这个在Android上AES加密的具体实现

https://github.com/philipplackner/AndroidCrypto/tree/encrypt/decrypt

或者参考这个文档

https://medium.com/@jerry.cho.dev/android-keystore-aa7d2b43adfe

基本差不多

1.加密管理器

key的初始化和获取

@RequiresApi(Build.VERSION_CODES.M)
class CryptoManager {//获取keystroe,用于存放加密的keyprivate val keyStore = KeyStore.getInstance("AndroidKeyStore").apply {load(null)}//获取加密器,模式是ENCRYPT_MODEprivate val encryptCipher get() = Cipher.getInstance(TRANSFORMATION).apply {init(Cipher.ENCRYPT_MODE, getKey())}//解码器,模式DECRYPT_MODE,private fun getDecryptCipherForIv(iv: ByteArray): Cipher {return Cipher.getInstance(TRANSFORMATION).apply {init(Cipher.DECRYPT_MODE, getKey(), IvParameterSpec(iv))}}//加密秘钥,存储在keystroe中private fun getKey(): SecretKey {val existingKey = keyStore.getEntry("secret", null) as? KeyStore.SecretKeyEntryreturn existingKey?.secretKey ?: createKey()}private fun createKey(): SecretKey {return KeyGenerator.getInstance(ALGORITHM).apply {init(KeyGenParameterSpec.Builder("secret",KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT).setBlockModes(BLOCK_MODE).setEncryptionPaddings(PADDING).setUserAuthenticationRequired(false).setRandomizedEncryptionRequired(true).build())}.generateKey()}//把byte进行加密,写入IV,写入机密后的bytesfun encrypt(bytes: ByteArray, outputStream: OutputStream): ByteArray {val encryptedBytes = encryptCipher.doFinal(bytes)outputStream.use {it.write(encryptCipher.iv.size)it.write(encryptCipher.iv)it.write(encryptedBytes.size)it.write(encryptedBytes)}return encryptedBytes}//解码,读取IV,根据IV再解码fun decrypt(inputStream: InputStream): ByteArray {return inputStream.use {val ivSize = it.read()val iv = ByteArray(ivSize)it.read(iv)val encryptedBytesSize = it.read()val encryptedBytes = ByteArray(encryptedBytesSize)it.read(encryptedBytes)getDecryptCipherForIv(iv).doFinal(encryptedBytes)}}companion object {private const val ALGORITHM = KeyProperties.KEY_ALGORITHM_AESprivate const val BLOCK_MODE = KeyProperties.BLOCK_MODE_CBCprivate const val PADDING = KeyProperties.ENCRYPTION_PADDING_PKCS7private const val TRANSFORMATION = "$ALGORITHM/$BLOCK_MODE/$PADDING"}}

        

2.加密

val bytes = messageToEncrypt.encodeToByteArray()val file = File(filesDir, "secret.txt")if(!file.exists()) {file.createNewFile()}val fos = FileOutputStream(file)messageToDecrypt = cryptoManager.encrypt(bytes = bytes,outputStream = fos).decodeToString()

3.解密

 val file = File(filesDir, "secret.txt")messageToEncrypt = cryptoManager.decrypt(inputStream = FileInputStream(file)).decodeToString()

http://www.rdtb.cn/news/16814.html

相关文章:

  • 建设部证书查询官方网站seo关键词排名优化技巧
  • 网络网站建设推广免费seo搜索优化
  • 石家庄网站建设工作室google下载官方版
  • 网站开发的选题依据种子搜索
  • 搜索引擎网站提交2023第二波疫情已经到来了
  • 艺术公司网站定制中心最新热点新闻
  • 网站怎么做推广关键词网站查询
  • 北京网站建设策划方案谷歌浏览器官网下载安装
  • 盘石做的网站b站推广平台
  • 网页开发设计公司淘宝seo搜索引擎优化
  • 申请网页域名长春网站seo公司
  • 最简单的做网站微信小程序平台官网
  • 镇江网站建设一般多少钱百度搜索引擎排行榜
  • 最权威的做网站设计公司价格高端网站建设深圳
  • 做漫画网站seo店铺描述
  • 做新媒体和网站搜索引擎优化论文3000字
  • 外包优化是什么意思肇庆seo按天收费
  • 大淘客网站怎么做推广引流方法有哪些推广方法
  • 美食网站开发报告百度旗下产品
  • 自己做网站需要服务器软件开发培训机构排名
  • 从零开始做电影网站常州网络推广哪家好
  • 驻马店专业做网站公司网上推广培训
  • 企业建设网站发生费用税务探讨全国最好网络优化公司
  • 交流平台网站怎么做网站如何在百度刷排名
  • wordpress调用留言网站快速排名优化哪家好
  • 国际域名网站大数据营销的概念
  • 攀枝花仁和住房和城乡建设局网站网站有吗免费的
  • 网站建设入门教程pdf安顺seo
  • 成都建设厅网站自己的网站
  • wordpress滚动导航栏seo营销网站