CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  API 调用

字符加密,解密

楼主stevewang()2003-08-01 15:51:41 在 PowerBuilder / API 调用 提问

有没有,纯pb编写的加密,解密函数???  
   
  急急急急急急急急急急急急急急急急 问题点数:0、回复次数:12Top

1 楼ldy(罗大佑)回复于 2003-08-03 09:01:45 得分 0

PB自己得可能不太好,PB不支持位运算、指针等,加密效果可能不好。  
  还是用一些底层语言也许好一些Top

2 楼oydz()回复于 2003-08-04 15:14:05 得分 0

当然可以,你可以把一些其它语言的算法翻译过来就是了!Top

3 楼zxthello(万有斥力)回复于 2003-08-04 15:23:03 得分 0

pb实现很麻烦的,我曾经这样实现过  
  1:把字符用asc函数转换成asc值,然后转换成定长的'01'字符串  
  2:把你的密钥也转换成这样的‘01'字符串,然后与1的字符串进行位异或。  
  3:得到的结果转换成asc值,然后用char函数得到字符  
   
  解密进行反向操作即可!Top

4 楼antivence(铁丝面)回复于 2003-08-04 16:44:23 得分 0

麻烦!Top

5 楼arich(快乐人间)回复于 2003-08-04 17:54:45 得分 0

不就是字符串操作嘛,关键是看你需要加密到的程度。。别小看PB哦。。Top

6 楼love007(风中的风)回复于 2003-08-07 15:12:41 得分 0

参数:as1,as2  
  int   li,li1  
  int   listart   =   1   ,lipos   =   1  
  string   lc  
  string   ls1,lsrtn  
  lsrtn   =   ''  
  //参数:as1:原字符串  
  // ,as2:'S':加密,'U':解密  
  as1   =   trim(as1)  
  if   as2   =   'S'   then  
  for   li   =   1   to   len(as1)  
  lc   =   mid(as1,li,1)  
  li1   =   asc(lc)  
  lsrtn   =   lsrtn   +   string(li1+10)   +   '   '  
  next  
  return   lsrtn  
  end   if  
  if   as2   =   'U'   then  
  lipos   =   pos(as1,'   ',listart)   -   1  
  do   while   lipos   >   0    
  lsrtn   =   lsrtn   +   char(int(long(left(as1,lipos))   -   10))  
  as1   =   mid(as1,lipos   +   2)  
  lipos   =   pos(as1,'   ',listart)   -   1  
  loop  
  if   len(as1)   <>   0   then  
  lsrtn   =   lsrtn   +   char(int(long(as1)   -   10))  
  end   if  
  return   lsrtn  
  end   if  
  return   '   'Top

7 楼ASDC001(ASDC001)回复于 2003-08-13 14:53:44 得分 0

同意   arich(一千零一夜零一灌)      
  看你要达到什么程度,  
  Top

8 楼junly1981(浪子心声)回复于 2004-03-10 02:20:33 得分 0

我有一纯PB的RAS,要的话加我:101174928Top

9 楼junly1981(浪子心声)回复于 2004-03-15 02:33:21 得分 0

//函数名   Decrypt,返回string,变量string   ls_jm  
   
  int   li_e,li_d,li_n,li_cd,I,bl,zcd//  
  long   lul_temp,lul_y  
  char   str1[],str2[],str[]  
  string   ls_str,bsw,z1,z2,ls_mw,ls_str_z  
  li_e=3 //    
  li_d=7 //    
  li_n=33 //    
  ls_mw=""  
  Trim(ls_jm)  
  ls_str_z=ls_jm //  
  zcd=Len(ls_str_z)  
  for   bl=1   to   zcd  
  lul_temp=0  
  str2=Mid(ls_str_z,bl,1)  
  str=str2  
  ls_str=String(asc(str))  
  //MessageBox("",ls_str)  
  do   while   ls_str   <>   ""  
  bsw="1" //  
  Trim(ls_str)  
  li_cd=Len(ls_str) //  
  lul_temp=Integer(Left(ls_str,2))  
  if   lul_temp>=li_n   then /N(N=33)  
  lul_temp=Integer(Left(ls_str,1))  
  ls_str=Right(ls_str,Len(ls_str)-1)  
  bsw="1"  
  else  
  if   li_cd<>1   then  
  ls_str=Right(ls_str,Len(ls_str)-2)  
  bsw="2"  
  else  
  ls_str=Right(ls_str,Len(ls_str)-1)  
  bsw="1"  
  end   if  
  end   if  
  lul_y=1;  
  for   I=0   to   li_e   -1 //  
  lul_y=lul_y*lul_temp  
  next  
   
  lul_y=Mod(lul_y,33) //  
  if   lul_y=0   and   bsw   ='2'   then  
  Trim(ls_mw)  
  ls_mw=ls_mw+"00"+bsw  
  elseif   lul_y<10   then  
  Trim(ls_mw)  
  ls_mw=ls_mw+"0"+String(lul_y)+bsw //sle_2.tex  
  else  
  Trim(ls_mw)  
  ls_mw=ls_mw+String(lul_y)+bsw  
  end   if  
  loop  
  next  
  return   ls_mwTop

10 楼junly1981(浪子心声)回复于 2004-03-15 02:35:03 得分 0

//函数名   Encrypt,返回string,变量string   ls_jm  
   
  int   li_e,li_d,li_n,li_cd,iI,zcd,bl,bl1,ls_mws       //  
  String   ls_str,bsw,z1,z2,ls_mw,yw,MyChar  
  char   str1[],str2[]  
  long   lul_temp,lul_x,lul_x0,lul_x1  
  yw=ls_jm  
  li_e=3 //   ????e,????  
  li_d=7 //   ????d,????  
  li_n=33 //   ??N:???????  
  MyChar=""  
  bsw="1"  
  zcd=Len(yw)  
  zcd=zcd/6  
  for   bl=1   to   zcd  
  bl1=((bl   -1)*6+1)  
  ls_str=Mid(yw,bl1,6)  
  ls_mw=""    
  do   while   ls_str<>""  
  str2=Left(ls_str,2)  
  lul_temp=Integer(str2)  
  str2=Mid(ls_str,4,1)  
  li_cd=Integer(str2) //????  
  ls_str=Right(ls_str,Len(ls_str)   -3) //?????,??????N(N=33?  
  //   ?????????????,lul_x   =   lul_x0   *   lul_x1  
  lul_x0=1  
  lul_x1=1  
     
  //   ???????7,??????4??????,?????3??????  
  for   iI=0   to   4   -1  
  lul_x0=lul_x0*lul_temp  
  next  
   
  lul_x0=Mod(lul_x0,33)  
     
  for   iI=0   to   li_d   -4   -1  
  lul_x1=lul_x1*lul_temp  
  next  
   
  lul_x1=Mod(lul_x1,33)  
     
  lul_x=Mod((lul_x0*lul_x1),33) //   ??????????  
  if   lul_x=0   and   li_cd=2   then  
  Trim(ls_mw)  
  ls_mw=ls_mw+"00"  
  elseif   lul_x<=9   and   li_cd=2   then  
   
  Trim(ls_mw)  
  ls_mw=ls_mw+"0"+String(lul_x) //   ??????????  
  else  
  Trim(ls_mw)  
  ls_mw=ls_mw+String(lul_x)  
  end   if  
  loop  
  str2=ls_mw  
  ls_mws=Integer(str2)  
  MyChar=MyChar+char(ls_mws)  
  ls_mw=""  
  ls_mws=0  
  next  
  return   MyChar  
   
  Top

11 楼fulongbiao(一个人的精彩)回复于 2004-03-19 11:13:53 得分 0

1:把字符用asc函数转换成asc值,然后转换成定长的'01'字符串  
  2:把你的密钥也转换成这样的‘01'字符串,然后与1的字符串进行位异或。  
  3:得到的结果转换成asc值,然后用char函数得到字符  
  ---------------  
  同意楼上的!Top

12 楼myclife(反方向的钟)回复于 2004-03-19 12:01:10 得分 0

考虑到用户可能试图旁路系统的情况,如物理地取走数据库,在通讯线路上窃听。对这样的威胁最有效的解决方法    
  就是数据加密,即以加密格式存储和传输敏感数据。    
    数据加密的术语有:明文,即原始的或未加密的数据。通过加密算法对其进行加密,加密算法的输入信息为明文和    
  密钥;密文,明文加密后的格式,是加密算法的输出信息。加密算法是公开的,而密钥则是不公开的。密文,不应为无    
  密钥的用户理解,用于数据的存储以及传输。    
    例:明文为字符串:    
    AS   KINGFISHERS   CATCH   FIRE    
    (为简便起见,假定所处理的数据字符仅为大写字母和空格符)。假定密钥为字符串:    
    ELIOT    
    加密算法为:    
    1)   将明文划分成多个密钥字符串长度大小的块(空格符以"+"表示)    
    AS+KI   NGFIS   HERS+   CATCH   +FIRE    
    2)   用00~26范围的整数取代明文的每个字符,空格符=00,A=01,...,Z=26:    
    0119001109   1407060919   0805181900   0301200308   0006091805    
    3)   与步骤2一样对密钥的每个字符进行取代:    
    0512091520    
    4)   对明文的每个块,将其每个字符用对应的整数编码与密钥中相应位置的字符的整数编码的和模27后的值取代:    
    5)   将步骤4的结果中的整数编码再用其等价字符替换:    
    FDIZB   SSOXL   MQ+GT   HMBRA   ERRFY    
    如果给出密钥,该例的解密过程很简单。问题是对于一个恶意攻击者来说,在不知道密钥的情况下,利用相匹配的    
  明文和密文获得密钥究竟有多困难?对于上面的简单例子,答案是相当容易的,不是一般的容易,但是,复杂的加密模    
  式同样很容易设计出。理想的情况是采用的加密模式使得攻击者为了破解所付出的代价应远远超过其所获得的利益。实    
  际上,该目的适用于所有的安全性措施。这种加密模式的可接受的最终目标是:即使是该模式的发明者也无法通过相匹    
  配的明文和密文获得密钥,从而也无法破解密文。    
    1.   数据加密标准    
    传统加密方法有两种,替换和置换。上面的例子采用的就是替换的方法:使用密钥将明文中的每一个字符转换为密    
  文中的一个字符。而置换仅将明文的字符按不同的顺序重新排列。    
  Top

相关问题

  • 字符串的加密与解密
  • 字符串加密和解密函数
  • 谁知道把一个字符串加密和解密?
  • 我要字符串加密解密源代码!
  • 有关对Encrypt函数加密字符串的解密问题。
  • c中字符串加密解密的问题
  • 能给MD5加密的字符串解密吗?
  • 跪求!!!字符串加密解密函数
  • 请教如何加密解密字符串
  • [求代码]对字符串加密与解密的函数

关键词

  • 加密
  • 字符
  • 解密
  • 函数
  • 转换
  • pb
  • lul
  • ls
  • bsw
  • lipos

得分解答快速导航

  • 帖主:stevewang

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo