汇编程序:字符串加密

字符串加密

(1)编程为datasg段中字符串中的每个字符加密,加密规则是:每个字符的ASCII值加4。加密好的字符写在待加密字符的后面

assume cs:codesg,ds:datasg
datasg segment
      db 'aah, I love you!'
      db '................'
datasg ends
codesg segment
start: (写程序)
       mov ax,4c00h
       int 21h
codesg ends
end start

[参考解答]

assume cs:codesg,ds:datasg
datasg segment
      db 'aah, I love you!'
      db '................'
datasg ends
codesg segment
start: mov ax, datasg
       mov ds, ax
       mov cx, 16
       mov si, 0
       mov di, 16
change:mov al, [si]
       add al, 4
       mov [di], al
       inc si
       inc di
       loop change

       mov ax,4c00h
       int 21h
codesg ends
end start

(2)编程为datasg中的每个字符串加密,加密的规则是,每行第1个字符ASCII码加1,第2个字符ASCII码加2,依类类推。已知每个字符串固定为16个字符,非空格字符不足16的,后都是空格。加密后的符号替代原字任,就写在原处。

datasg segment
      db 'He Li Jian      '
      db 'Zhai Yi Ming    '
      db 'Sun Xue Jiao    '
      db 'Ma Wen Ming     '
datasg ends

[参考解答](程序变得复杂,要及时写注释了)

assume cs:codesg,ds:datasg
datasg segment
      db 'He Li Jian      '
      db 'Zhai Yi Ming    '
      db 'Sun Xue Jiao    '
      db 'Ma Wen Ming     '
datasg ends
stacksg segment
      dw 0,0,0,0,0,0,0,0
stacksg ends
codesg segment
start: mov ax, stacksg
       mov ss, ax
       mov sp, 16
       mov ax, datasg
       mov ds, ax
       mov bx, 0    ;基址
       mov cx, 4    ;外层循环次数
       mov dl, 1    ;这是第几个字符?
   s0: push cx      ;保存外层循环数
       mov si, 0    ;[bx+si]将是要处理的字符
       mov cx, 16       ;设置内层循环次数
    s: mov al, [bx+si]  ;取字符
       add al, dl       ;加密
       mov [bx+si], al  ;写入加密字符
       inc si
       inc dl
       loop s
       add bx, 16   ;准备为下一个字符串加密
       mov si, 0
       mov dl, 1
       pop cx
       loop s0

       mov ax,4c00h
       int 21h
codesg ends
end start

时间: 2024-10-28 16:21:28

汇编程序:字符串加密的相关文章

浅谈 DotNet 保护中字符串加密的技术

加密|字符串 学习过了名称混淆,最近又看了一些字符串加密方面的东西.在混淆保护和加密壳中都有字符串加密保护功能. 总体上字符串加密可以分为两类, 第一类是混淆保护中的字符串加密技术.主要特征是修改代码执行路径.大部分混淆保护工具的字符串加密都是这一类. 第二类就是加密壳中的字符串加密技术.这种不用修改IL代码,直接对元数据中的字符串加密.这一类以remotesoft,maxtocode为代表. 先看第一类,加密实现大致如下. 加密前: MessageBox.Show("Hellow World!

C#常用字符串加密解密方法封装代码

 这篇文章主要介绍了C#常用字符串加密解密方法封装代码,有需要的朋友可以参考一下    代码如下: //方法一 //须添加对System.Web的引用 //using System.Web.Security; /// <summary> /// SHA1加密字符串 /// </summary> /// <param name="source">源字符串</param> /// <returns>加密后的字符串</retu

【高分求助】有什么字符串加密解密方法加密之后不是乱码?

问题描述 在C#中,有什么有什么字符串加密解密方法加密之后不是乱码?主要用于文件名加密,所以要求加密之后的字符串是规则的,否则无法用于文件名.另外文件名包括中文和英文.请高手帮忙,谢谢. 解决方案 解决方案二:自定义一个加密规则解决方案三:是不是乱码,自己定,你们的乱码概念,什么是乱码,也知道推敲解决方案四:就是能做文件名,一般的加密算法,加密之后都会有一些特殊字符无法作为文件名用.解决方案五:加密后转16进制形式串,或者其他进制比如0-9a-zA-Z再随便加两个其他符号构成64进制字符串解决方

mac-求银联java MAC字符串加密类

问题描述 求银联java MAC字符串加密类 找了好多MAC加密都是C的,有没有java版的,求一个ansi x9.9 算法的MAC加密类 解决方案 http://blog.csdn.net/lonelyroamer/article/details/7656338 解决方案二: http://download.csdn.net/detail/u010288990/8016707 C++修改为Java很容易,就是指针转数组,一些类型变变,别的基本不用改.参照上面的修改下

用javascript写的字符串加密程序,用if判断程序正常,用switch出错

问题描述 用javascript写的字符串加密程序,用if判断程序正常,用switch出错 大家好,这段代码实现这样的功能: 1.用户输入全是小写字母的字符串,不支持空格和标点符号: 2.程序将字符串中的每个字母,按字母表顺序,向后移动5位,并输出新字符串: <script type="text/javascript"> var str=prompt("请输入要加密的字符串:").split(""); var newStr=[]; v

汇编语言设计字符串加密解密算法

问题描述 汇编语言设计字符串加密解密算法 做一个字符串的加密解密 字符串可以定义成静态的数据段 也可以从键盘动态输入 尽量加上输出 输出加密后的字符 在输出解密后的字符与自己的作比较 ,最好用到宏和子程序

php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法_php技巧

本文实例讲述了php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法.分享给大家供大家参考,具体如下: 由于出于安全考虑,参数传递的时候需要进行加密和解密,一个比较简单的方法是直接使用php中的函数mcrypt_encrypt.mcrypt_decrypt,一个加密,一个解密,但是问题又出现了,这个加密过程中会产生一些使url混乱的符号,于是在加密后对加密字符再进行一次处理,然后多了一一次解析: $key = "miyao";//密钥 $strin

JAVA 字符串加密、密码加密实现方法_java

在我们的程序设计中,我们经常要加密一些特殊的内容,今天总结了几个简单的加密方法,分享给大家! 如何用JAVA实现字符串简单加密解密?为保证用户信息安全,系统在保存用户信息的时候,务必要将其密码加密保存到数据库.  需要使用密码的时候,取出数据,解密处理即可.  避免保存明文密码. 方案一: package com.tnt.util; import java.security.MessageDigest; public class StringUtil { private final static

c++-C++ cryppto 字符串加密

问题描述 C++ cryppto 字符串加密 如果x是仅含两个空格的字符串,x=' ',那么crypto(x)正好等于x,这是为什么,还有其他的含两个字符的字符串经过crypto后不变吗