易截截图软件、单文件、免安装、纯绿色、仅160KB

在SQL SERVER中实现RSA加密算法

/***************************************************  
          作者:herowang(让你望见影子的墙)
    日期:2010.1.1
          注:    转载请保留此信息
    更多内容,请访问我的博客:blog.csdn.net/herowang
****************************************************/
在SQL SERVER中实现RSA加密算法
一、RSA算法原理
RSA算法非常简单,概述如下:
找两素数p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一个数e,要求满足e<t并且e与t互素(就是最大公因数为1)
取d*e%t==1
这样最终得到三个数: n   d   e
设消息为数M (M <n)
设c=(M**d)%n就得到了加密后的消息c
设m=(c**e)%n则 m == M,从而完成对c的解密。
注:**表示次方,上面两式中的d和e可以互换。
在对称加密中:
n d两个数构成公钥,可以告诉别人;
n e两个数构成私钥,e自己保留,不让任何人知道。
给别人发送的信息使用e加密,只要别人能用d解开就证明信息是由你发送的,构成了签名机制。
别人给你发送信息时使用d加密,这样只有拥有e的你能够对其解密。
rsa的安全性在于对于一个大数n,没有有效的方法能够将其分解从而在已知n d的情况下无法获得e;同样在已知n e的情况下无法求得d。
以上内容出自原文出处http://www.xfocus.net/articles/200503/778.html
二、使用T-SQL实现RSA算法
    --判断是否为素数
if object_id('f_pnumtest') is not null
  drop function f_isPrimeNum
go
create function [dbo].[f_isPrimeNum]
(@p int)
returns bit
begin
  declare @flg bit,@i int
  select @flg=1, @i=2
  while @i<sqrt(@p)
  begin
     if(@p%@i=0  )
        begin
        set @flg=0
              break
     end 
        set @i=@i+1
  end
  return @flg
end
 
--判断两个数是否互素,首先要选取两个互素的数
 
if object_id('f_


相关文档:

sql获取日期

declare
 @aa varchar(20)
set @aa= CONVERT(varchar(100), GETDATE(), 23)
--//日
print @aa+' 0:00:00.000'
print @aa+' 23:59:59.999'
--//周
print CONVERT(varchar(100), DATEADD(wk, DATEDIFF(wk,0,getdate()), 0), 23)+' 0:00:00.000'
print CONVERT(varchar(100), DATEADD(wk, DATEDIFF(wk,0,getdate( ......

sql 基本查询语句

SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname ......

sql中having 与group by详解

GROUP BY 实例
表 "Sales":
Company Amount
W3Course 6500
IBM 5500
W3Course 7300
SQL:
SELECT Company, SUM(Amount) from Sales
结果:
Company SUM(Amount)
W3Course 19300
IBM 19300
W3Course 19300
上面的代码是无效的,这是由于被返回的列没有进行部分合计。GROUP BY 子句能解决这个问题:
SELE ......

Sql Sever 2005 视图的操作

很多人特别喜欢用视图,但有的人从来不用视图.这都是两种不良的习惯.     要明确视图可以完成的工作以及使用场合.
     1.阻止选择保密列
     2.降低用户读取数据库内数据的复杂性  
     3.在数据库中添加索引以加速 ......

sql 语句总结

mysql :  将一个表的数据插入到newT 中
(newT 表须存在,且结构与select 语句对应的结构同  ,最好不用* 而是具体字段)    
       insert into newT select * from t1 where ...
也可以create table newT select f1,f2 from t1; (select into 的替代方法,my ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号