社区
C#
帖子详情
怎样将任意长度的字符串变成16个字节的字符串?(要保证唯一性)
cuterain
2003-10-20 08:51:57
怎样将任意长度的字符串变成16个字节的字符串?
(要保证唯一性)?
...全文
534
13
打赏
收藏
怎样将任意长度的字符串变成16个字节的字符串?(要保证唯一性)
怎样将任意长度的字符串变成16个字节的字符串? (要保证唯一性)?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tavor
2004-03-15
打赏
举报
回复
哈哈,没看清地方,走错地方,给了错误的地方,对不起了,楼主
turnmissile
2004-03-15
打赏
举报
回复
byte[] txt1 = System.Text.ASCIIEncoding.ASCII.GetBytes(textData.Text);
byte[] key = System.Text.ASCIIEncoding.ASCII.GetBytes(textKey.Text);
//’声明加密类,既使用何种加密方法
System.Security.Cryptography.HMACSHA1 hma = new System.Security.Cryptography.HMACSHA1(key);
//进行加密转换
System.Security.Cryptography.CryptoStream cStream = new System.Security.Cryptography.CryptoStream(System.IO.Stream.Null, hma, System.Security.Cryptography.CryptoStreamMode.Write);
//将加密后的数据保存在TXT1这个变量中
//’此时的txt1已经不是先前的要加密的文字,而是被刷新后的已经加密的数据。
cStream.Write(txt1, 0 , txt1.Length);
cStream.Close();
//’显示加密的文字。
textCryptography.Text = System.Text.ASCIIEncoding.ASCII.GetString(hma.Hash);
如果要变成16字节的就没有办法了,也不可能保证唯一性,嗬嗬,如果有那东西,那不是所有的文件都可以压缩成16字节的文件了吗?
上面是一个HMACSHA1的加密。
tavor
2004-03-14
打赏
举报
回复
private string getCountStr(string str,int count)
{
byte [] bwrite=Encoding.GetEncoding("GB2312").GetBytes(str.ToCharArray());
if(bwrite.Length>=count)
return Encoding.Default.GetString( bwrite,0,count);
else return Encoding.Default.GetString(bwrite);
}
上面的这个方法就可以获得一个字符串中相应的字节数的子串。
比如:
str1="这真的是一个好人吗?" ;
str2="abcdefghijklmnopqrs";
分别调用上述函数,
str1=getCountStr(str1,16);
str2=getCountStr(str2,16);
就会返回
str1的值为 "这真的是一个好人"
str2的值为 "abcdefghijklmnop"
不过我做这里用的时英文操作系统,用的时候绝对没有问题,就是16个字节的.
没试过在别的系统下,如果有必要的话,你调整一下getCountStr中的编码方式
老大,写的够详细了吧。呵呵,快结帖给分吧
cuterain
2003-11-07
打赏
举报
回复
TO:Montaque(侯永锋 [MVP])
System.Security.Cryptography.HashAlgorithm
我去看看
wideroad
2003-10-21
打赏
举报
回复
colinfly(Colin)的分析太对了,牛!
Montaque
2003-10-21
打赏
举报
回复
System.Security.Cryptography.HashAlgorithm 下面的哈希算法,这是比较号的解决方案。
维她奶
2003-10-21
打赏
举报
回复
学习中!
xixigongzhu
2003-10-21
打赏
举报
回复
基本上可以保证唯一性,如果初始字符串改了一点点,出来的结果会有很大的变化。
16个字节表现的组合虽然有限,但也不少。
16个字节总共是128位,每位可能有两个值,那么可能的组合有:
2^128 = 3.4028236692093846342648111928435e+38
这个数字应该很大了。
xixigongzhu
2003-10-21
打赏
举报
回复
static String Convert(String str) {
MD5 md5 = MD5.Create();
byte[] bytes = md5.ComputeHash(Encoding.Unicode.GetBytes(str));
return Encoding.Unicode.GetString(bytes);
}
注意编码,其它的编码也可以。
hq1305018
2003-10-21
打赏
举报
回复
用md5吧,今年流行md5!呵呵
steeven
2003-10-21
打赏
举报
回复
赞成md5
colinfly
2003-10-20
打赏
举报
回复
如果是任意长度的话,那要保证唯一性基本是不可能的。因为16字节能表现的组合是有限的。不清楚你是用于哪种情况。
顾君彦
2003-10-20
打赏
举报
回复
用MD5算法或hash算法等做摘要算法试试。
Python 47个
字符串
方法
# Python 47个
字符串
方法## 课程介绍同学们是否总是要搜资料、查官网后,才知道怎么操作
字符串
?如果是,来学学本课程吧,本课程以讲解官网文档的方式,讲解 Python 47个
字符串
方法,涉及替换、删除、连接、查找、分割、格式化、编码、转换等
字符串
操作,带同学们系统学习 Python
字符串
方法。
由一个
任意
长度
字符串
生成唯一的32位整数
由一个
任意
长度
字符串
生成唯一的32位整数 Lu核心库的输出函数StrToUniInt可将一个
任意
长度
字符串
转换成一个唯一的32位整数(只要没有对Lu进行重新初始化,该整数值就唯一);反过来,函数UniIntToStr接受一个32位整数,返回与之对应的
字符串
。 例子: 仅需要以下支持文件: 1、头文件lu32.h。 2、导入库lu32.lib。 3、核心库
字符串
和
字符串
的
长度
首先明确几个概念:
字符串
:形式语言理论研究的基本对象之一,是字符的有限序列。以下引用中文喂鸡“
字符串
”:设∑是叫做字母表的非空有限集合。∑的元素叫做“符号”或“字符”。在∑上的
字符串
(或字)是来自∑的任何有限序列。例如,如果∑ = {0, 1},则0101是在∑之上的
字符串
。
字符串
的
长度
是在
字符串
中字符的数目(序列的
长度
),它可以是任何非负整数。“空串”是在∑上的唯一的
长度
为0的
字符串
,并被指示为...
python生成唯一
字符串
_python 生成唯一
字符串
UUID与MD5
1 Python使用UUID库生成唯一IDUUID是128位的全局唯一标识符,通常由32
字节
的
字符串
表示,
保证
时间和空间的
唯一性
通过MAC地址、时间戳、命名空间、随机数、伪随机数来
保证
生成ID的
唯一性
用法:uuid1()——基于时间戳uuid3()——基于名字的MD5散列值通过计算名字和命名空间的MD5散列值得到,
保证
了同一命名空间中不同名字的
唯一性
,和不同命名空间的
唯一性
,但同一命名空间的同一...
将
字节
转换为
字符串
我将外部程序的标准输出捕获到 bytes 对象中:我想把它转换成一个普通的 Python
字符串
,这样我就可以像这样打印它:我尝试了 binascii.b2a_qp() 方法,但又得到了相同的 bytes 对象:如何使用 Python 3 将 bytes 对象转换为 str?
C#
110,571
社区成员
642,568
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章