用汇编编写加解密函数

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
相关推荐
JJJJ_iii2 分钟前
【机器学习07】 激活函数精讲、Softmax多分类与优化器进阶
人工智能·笔记·python·算法·机器学习·分类·线性回归
啊森要自信20 分钟前
【MySQL 数据库】使用C语言操作MySQL
linux·c语言·开发语言·数据库·mysql
天若有情67334 分钟前
TFword:从字符到片段,解析一个“小而精”的字符串处理工具的设计智慧
java·jvm·算法
yuuki2332331 小时前
【C语言】预处理详解
c语言·windows·后端
DuHz1 小时前
频率分集阵列雷达——论文阅读
论文阅读·算法·汽车·信息与通信·毫米波雷达
机器学习之心1 小时前
198种组合算法+优化RF随机森林+SHAP分析+新数据预测!机器学习可解释分析,强烈安利,粉丝必备!
算法·随机森林·机器学习·shap分析·198种组合算法
小立爱学习1 小时前
Linux 内存 --- get_user_pages/pin_user_pages函数
linux·c语言
jikiecui2 小时前
信奥崔老师:实数型: float、double
c++·算法
GilgameshJSS2 小时前
STM32H743-ARM例程26-TCP_CLIENT
c语言·arm开发·stm32·单片机·tcp/ip