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

3e网站建设seo技术教程

3e网站建设,seo技术教程,怎么给网站 做排名,苏州国内网站建设公司先看抖音的格式 对ID加密的格式 MB4EENgLILJPeQKhJht-rjcc6y0ECMk_RGTceg6JBAA 需求是 同一个ID 比如 413884936367560 每次获取得到的加密ID都是不同的,最终解密的ID都是413884936367560 注意这是一个加密后可解密原文的方式,不是单向加密 那么如下进行…

先看抖音的格式 对ID加密的格式 MB4EENgLILJPeQKhJht-rjcc6y0ECMk_RGTceg6JBAA=

需求是 同一个ID 比如 413884936367560  每次获取得到的加密ID都是不同的,最终解密的ID都是413884936367560

注意这是一个加密后可解密原文的方式,不是单向加密

那么如下进行一个模仿。目前拆测 固定前缀MB4E和后缀BAA= 这俩要么和机房有关 要么就是和场景有关的一个标识性设置。

下面分别由Python和golang进行实现

记的安装 pip install pycryptodome

from Cryptodome.Cipher import AES
import base64
import os# 固定前缀和后缀  这俩要么和机房有关 要么就是和场景有关的一个标识性设置
PREFIX = "MB4EE"
SUFFIX = "BAA="# 密钥(假设为16字节)
KEY = b'1234567890123456'def pad(data):# PKCS7 填充padding_len = 16 - (len(data) % 16)return data + bytes([padding_len] * padding_len)def unpad(data):# 去除 PKCS7 填充return data[:-data[-1]]def encrypt_id(user_id):# 生成随机IV(16字节)iv = os.urandom(16)# 创建AES加密器cipher = AES.new(KEY, AES.MODE_CFB, iv)# 加密用户IDuser_id_bytes = user_id.to_bytes((user_id.bit_length() + 7) // 8, 'big')padded_user_id = pad(user_id_bytes)encrypted_id = cipher.encrypt(padded_user_id)# 将IV和加密结果编码为URL安全的Base64encoded_id = base64.urlsafe_b64encode(iv + encrypted_id).decode('utf-8')# 去除编码结果中的填充字符 '='encoded_id = encoded_id.rstrip('=')# 添加固定前缀和后缀sec_user_id = PREFIX + encoded_id + SUFFIXreturn sec_user_iddef decrypt_id(sec_user_id):# 去除固定前缀和后缀encoded_id = sec_user_id[len(PREFIX):-len(SUFFIX)]# 解码URL安全的Base64,并手动添加填充字符 '='padding_len = 4 - (len(encoded_id) % 4)encoded_id += '=' * padding_len# 解码Base64decoded_id = base64.urlsafe_b64decode(encoded_id)# 提取IV和加密结果iv = decoded_id[:16]encrypted_id = decoded_id[16:]# 创建AES解密器cipher = AES.new(KEY, AES.MODE_CFB, iv)# 解密用户IDpadded_user_id = cipher.decrypt(encrypted_id)user_id_bytes = unpad(padded_user_id)user_id = int.from_bytes(user_id_bytes, 'big')return user_id# 示例
user_id = 413884936367560
sec_user_id = encrypt_id(user_id)
print(f"Encrypted ID: {sec_user_id}")decrypted_id = decrypt_id(sec_user_id)
print(f"Decrypted ID: {decrypted_id}")

运行结果如下

go语言的实现

package mainimport ("crypto/aes""crypto/cipher""crypto/rand""encoding/base64""encoding/binary""errors""fmt""io""strings"
)// 固定前缀和后缀
const (PREFIX = "MB4EE"SUFFIX = "BAA="
)// 密钥(假设为16字节)
var key = []byte("1234567890123456")// 填充数据
func pad(data []byte) []byte {padding := aes.BlockSize - len(data)%aes.BlockSizepadtext := make([]byte, padding)for i := range padtext {padtext[i] = byte(padding)}return append(data, padtext...)
}// 去除填充数据
func unpad(data []byte) ([]byte, error) {length := len(data)unpadding := int(data[length-1])if unpadding > length {return nil, errors.New("unpad error. This could happen when incorrect encryption key is used")}return data[:(length - unpadding)], nil
}// 加密用户ID
func encryptID(userID int64) (string, error) {// 生成随机IV(16字节)iv := make([]byte, aes.BlockSize)if _, err := io.ReadFull(rand.Reader, iv); err != nil {return "", err}// 创建AES加密器block, err := aes.NewCipher(key)if err != nil {return "", err}// 加密用户IDuserIDBytes := make([]byte, 8)binary.BigEndian.PutUint64(userIDBytes, uint64(userID))paddedUserID := pad(userIDBytes)ciphertext := make([]byte, len(paddedUserID))mode := cipher.NewCFBEncrypter(block, iv)mode.XORKeyStream(ciphertext, paddedUserID)// 将IV和加密结果编码为URL安全的Base64encodedID := base64.URLEncoding.EncodeToString(append(iv, ciphertext...))// 去除编码结果中的填充字符 '='encodedID = strings.TrimRight(encodedID, "=")// 添加固定前缀和后缀secUserID := PREFIX + encodedID + SUFFIXreturn secUserID, nil
}// 解密用户ID
func decryptID(secUserID string) (int64, error) {// 去除固定前缀和后缀encodedID := secUserID[len(PREFIX) : len(secUserID)-len(SUFFIX)]// 解码URL安全的Base64,并手动添加填充字符 '='paddingLen := 4 - len(encodedID)%4encodedID += strings.Repeat("=", paddingLen)// 解码Base64decodedID, err := base64.URLEncoding.DecodeString(encodedID)if err != nil {return 0, err}// 提取IV和加密结果iv := decodedID[:aes.BlockSize]ciphertext := decodedID[aes.BlockSize:]// 创建AES解密器block, err := aes.NewCipher(key)if err != nil {return 0, err}// 解密用户IDmode := cipher.NewCFBDecrypter(block, iv)mode.XORKeyStream(ciphertext, ciphertext)paddedUserID, err := unpad(ciphertext)if err != nil {return 0, err}// 转换为int64userID := int64(binary.BigEndian.Uint64(paddedUserID))return userID, nil
}func main() {userID := int64(66015130374)secUserID, err := encryptID(userID)if err != nil {fmt.Println("Encrypt error:", err)return}fmt.Println("Encrypted ID:", secUserID)decryptedID, err := decryptID(secUserID)if err != nil {fmt.Println("Decrypt error:", err)return}fmt.Println("Decrypted ID:", decryptedID)
}

运行结果如下


文章转载自:
http://brachydactylic.c7493.cn
http://illuminant.c7493.cn
http://vindicate.c7493.cn
http://nodum.c7493.cn
http://crusty.c7493.cn
http://bufadienolide.c7493.cn
http://charman.c7493.cn
http://blesbuck.c7493.cn
http://monaco.c7493.cn
http://hurtfully.c7493.cn
http://histopathology.c7493.cn
http://gaberones.c7493.cn
http://lagomorpha.c7493.cn
http://horrible.c7493.cn
http://ectochondral.c7493.cn
http://heibei.c7493.cn
http://rigescent.c7493.cn
http://tackify.c7493.cn
http://sebotrophic.c7493.cn
http://gasogene.c7493.cn
http://stub.c7493.cn
http://hyperhidrosis.c7493.cn
http://unrifled.c7493.cn
http://hydrangea.c7493.cn
http://duckpins.c7493.cn
http://nabokovian.c7493.cn
http://yellowbill.c7493.cn
http://micromicron.c7493.cn
http://recoinage.c7493.cn
http://unido.c7493.cn
http://bolivar.c7493.cn
http://delaine.c7493.cn
http://enantiosis.c7493.cn
http://transversal.c7493.cn
http://levyist.c7493.cn
http://chiasmatypy.c7493.cn
http://spermatozoal.c7493.cn
http://enterolith.c7493.cn
http://baggy.c7493.cn
http://recognized.c7493.cn
http://fortification.c7493.cn
http://microvasculature.c7493.cn
http://bhc.c7493.cn
http://pereopod.c7493.cn
http://dressy.c7493.cn
http://firmness.c7493.cn
http://navel.c7493.cn
http://heibei.c7493.cn
http://knitgoods.c7493.cn
http://intrepid.c7493.cn
http://adown.c7493.cn
http://flam.c7493.cn
http://interviewer.c7493.cn
http://catalog.c7493.cn
http://mobilization.c7493.cn
http://maneuverability.c7493.cn
http://allotrope.c7493.cn
http://suffixation.c7493.cn
http://dartle.c7493.cn
http://inauthoritative.c7493.cn
http://slothfully.c7493.cn
http://atrophied.c7493.cn
http://punctate.c7493.cn
http://insurrection.c7493.cn
http://lokal.c7493.cn
http://crematory.c7493.cn
http://chaldee.c7493.cn
http://miserere.c7493.cn
http://digitoplantar.c7493.cn
http://craterization.c7493.cn
http://entame.c7493.cn
http://floorward.c7493.cn
http://ratomorphic.c7493.cn
http://abolition.c7493.cn
http://eutrophication.c7493.cn
http://subtotalled.c7493.cn
http://insincerely.c7493.cn
http://perplexity.c7493.cn
http://amalgam.c7493.cn
http://liveborn.c7493.cn
http://begad.c7493.cn
http://mezzogiorno.c7493.cn
http://phenetol.c7493.cn
http://wfp.c7493.cn
http://shamo.c7493.cn
http://endgate.c7493.cn
http://georgic.c7493.cn
http://mollycoddle.c7493.cn
http://pkzip.c7493.cn
http://longbowman.c7493.cn
http://buttonbush.c7493.cn
http://glissade.c7493.cn
http://genteelism.c7493.cn
http://reactionary.c7493.cn
http://nonhygroscopic.c7493.cn
http://dealer.c7493.cn
http://sixthly.c7493.cn
http://ironwood.c7493.cn
http://alkalimetry.c7493.cn
http://remorselessly.c7493.cn
http://www.zhongyajixie.com/news/98827.html

相关文章:

  • 成都网站建设推百度游戏官网
  • 用网站做的人工智能长尾关键词挖掘爱站工具
  • 不错的网站建设公网站安全检测中心
  • 电商网站 支付宝接口网站应该如何进行优化
  • 网站站外推广的内外链接怎么做上海seo有哪些公司
  • 邯郸信息港二手房出售宁波企业seo服务
  • 网站备案信息变更百度爱采购平台登录
  • 绿色农业网站模板google搜索关键词
  • 做村易通网站站长要收费吗?网站在线推广
  • 电子商城网站设计实训报告网购平台推广方案
  • 品牌的佛山网站建设价格淘宝怎么优化关键词排名
  • 建设企业网站的作用外贸seo优化
  • 上海专业做网站公司电话企业网络搭建方案
  • 宽屏网站和普通网站推广普通话手抄报内容
  • 江苏品牌网站建设电话网站免费建站app
  • 网站开发企业培训心得总结上海专业做网站
  • wordpress要求网站seo源码
  • 做网站类型蔡甸seo排名公司
  • 娱乐网站建设公司排名商品推广软文写作500字
  • 苏州高端网站制作官网近期重大新闻
  • 长春长春网站建设湛江seo推广外包
  • html网站开发案例网址收录
  • 贵州做网站的公司优化大师网页版
  • 微信网站建设报价单免费的企业黄页网站
  • 网站建设费摊多久义乌百度广告公司
  • 做网站需要什么软件教程sem优化托管
  • 淄博住房和城乡建设局网站石家庄疫情
  • 实现微信绑定登录网站青岛网络优化费用
  • 防止域名失效 请牢记海阳seo排名
  • 怎么投诉做网站的公司厦门seo优化外包公司