用汇编编写加解密函数

1.data段

cpp 复制代码
data db "hello,sam"
key db "key"
dataLen dword ?
endata byte 10 dup(0)
dedata byte 10 dup(0)

2.Encryption(加密)

cpp 复制代码
Encryption proc
    push ebp
    mov  ebp,esp

    ;加密数据长度,循环次数
    mov  ecx,sizeof data
    ;寄存器不够用 
    sub  esp,4
    mov  dword ptr [ebp-4],sizeof key 
    mov  dataLen,0
la:
    mov eax,dataLen
    mov ebx,dword ptr [ebp-4]
    cdq
    idiv ebx
    mov bl,byte ptr key[edx]
    mov edx,dataLen
    mov al,byte ptr data[edx]
    not al
    xor al,bl
    mov byte ptr endata[edx],al
    inc dataLen
    loop la
    mov esp,ebp
    pop ebp
    ret
Encryption endp

3.Decryption (解密)

cpp 复制代码
Decryption proc
    push ebp
    mov ebp,esp
    mov ecx,dataLen
    mov dataLen,0
    sub  esp,4
    mov  dword ptr [ebp-4],sizeof key 
la:
    mov eax,dataLen
    mov ebx,dword ptr [ebp-4]
    cdq
    idiv ebx
    mov bl,byte ptr key[edx]
    mov edx,dataLen
    mov al,byte ptr endata[edx]
    xor al,bl
    not al
    mov byte ptr dedata[edx],al
    inc dataLen
    loop la

    mov esp,ebp
    pop ebp
    ret
Decryption endp
相关推荐
moonlifesudo19 分钟前
322:零钱兑换(三种方法)
算法
NAGNIP18 小时前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
美团技术团队19 小时前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
Fanxt_Ja1 天前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下1 天前
最终的信号类
开发语言·c++·算法
茉莉玫瑰花茶1 天前
算法 --- 字符串
算法
博笙困了1 天前
AcWing学习——差分
c++·算法
NAGNIP1 天前
认识 Unsloth 框架:大模型高效微调的利器
算法
NAGNIP1 天前
大模型微调框架之LLaMA Factory
算法
echoarts1 天前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust