用汇编编写加解密函数

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
相关推荐
充值修改昵称2 分钟前
数据结构基础:二叉树高效数据结构的奥秘
数据结构·python·算法
Y1rong33 分钟前
STM32之GPIO
stm32·单片机·嵌入式硬件
啊阿狸不会拉杆39 分钟前
《机器学习》第四章-无监督学习
人工智能·学习·算法·机器学习·计算机视觉
Java程序员威哥1 小时前
用Java玩转机器学习:协同过滤算法实战(比Python快3倍的工程实现)
java·开发语言·后端·python·算法·spring·机器学习
Lips6111 小时前
第六章 支持向量机
算法·机器学习·支持向量机
Howrun7771 小时前
信号量(Semaphore)
开发语言·c++·算法
leaves falling1 小时前
c语言-动态内存管理
c语言·开发语言
小码过河.1 小时前
设计模式——建造者模式
单片机·设计模式·建造者模式
9稳1 小时前
基于单片机的家庭安全系统设计
开发语言·网络·数据库·单片机·嵌入式硬件
cheems95271 小时前
[Java EE]多线程模式下容器的选择
算法·哈希算法