用.NET写“算命”程序.NET骚操作

“算命”,是一种迷信,我父亲那一辈却执迷不悟,有时深陷其中,有时为求一“上上签”,甚至不惜重金,向“天神”保佑。我曾看到过有些算命网站,可以根据人的生辰八字,来求得这个人一生的财运、桃花运,如果第一卦算得不好,还可以向“天神”“请愿”(充钱),再算一卦,直到达到好运为止。

作为一个深信唯物辩证法的人来说,这些东西当然是不信。

但仔细口味,发现这些东西其中需要有些科学道理。我可以将算命总结为以下“三要素”:

如果将算命当作一个函数,那它的输入无疑是姓名、其它个人信息和诚心。,输出就是一个分数(0-100),可以用下图的代码表示:

intdestinyScore=f(name,otherPersonalInformation,faith);下面,我将用.NET实现这个“算命”的功能。

如果只以姓名作为输入,那么这个函数可以简化为:

intdestinyScore=f(name);这可能就好办多了,如.NET中的.GetHashCode(),即可快速获取一个字符串的哈希值,这个哈希值应该是固定的(吗?),该值的取值范围是int.MinValue-int.MaxValue。因此最简单的办法,可以先可以通过对100求模,此时的取值范围是-99~99;然后再取绝对值+1即可,代码如下:

intGetForturn(stringname){ returnMath.Abs(name.GetHashCode()%100)+1;}在.NETFramework4.8中运行,可以算出我(周杰)的得分固定为15分。

在.NETCore中,这个算法每次重新运行,算出的结果都不同,因为.NETCore为了确保安全性,在应用程序启动时,会随机生成一个字符串哈希值种子,因此每次exe运行,哈希值都会变,文档是这么说的:

很显然,这不符合“一致性”,看来想简单地通过GetHashCode()快速“算命”的想法落空了,只能使用标准的哈希算法。

当然,使用如此简单的算法,客户知道了,可能也不太情愿消费更多的“诚意金”了。

哈希算法可以给任意长度的字符转换为一串二进制数组,也就是哈希值。.NET内置了许多不同的哈希算法可供选择:

我们要指定一点点“天机”(加盐),但“天机不可泄露”,因此简单地MD5等单纯哈希算法排除;

我们要转化为一个整数,最大的整数类型,long/Int64,为64位,而最小的内置哈希算法,MD5,就已达128位。因此也要排除HMACSHA等“加盐”哈希。当然这些哈希值也可以手动截取部分长度,但安全性是个问号(也受强迫症影响)。

所以最终我们选择了Rfc2898DeriveBytes,该算法可以生成任意指定长度的哈希值。这个类的构造函数要求输入一个盐值和迭代次数,在这个示例中我们取一个别人不知道的值(代码中写死了,你们假装不知道,你们想用这个代码时可以改改)。可以写出如下代码:

intGetForturn(stringname){ using(varh=newRfc2898DeriveBytes(name, salt:newbyte[8]{44,2,3,4,5,6,7,8}, iterations:10086)) { return(int)(BitConverter.ToUInt64(h.GetBytes(8),0)%100)+1; };}可见算出一卦80分以上的“上签”,已经非常不容易了。我从网上自动生成了888个姓名,然后调用该函数,发现得分超过90分“上上签”标准的,只有83个,相同于十分之一,符合分布特点(详情见Github上的代码)。

通过以下代码,可以算出“狗二”是48分,“狗三”是96分,可见一字之差相差甚远:

GetForturn("狗二").Dump();//48GetForturn("狗三").Dump();//96完整算法最后,依葫芦画瓢,加上个人信息参数(生日)和“诚意金次数”,完成最后的算法:

intGetForturn(stringname,DateTimebirthDay,intfaithCount){ using(varh=newRfc2898DeriveBytes(name+birthDay+faithCount, salt:newbyte[8]{44,2,3,4,5,6,7,8}, iterations:10086)) { return(int)(BitConverter.ToUInt64(h.GetBytes(8),0)%100)+1; };}然后又是“狗二”和“狗三”,加上他们的生日参数后,默认他们的得分是95分和3分:

GetForturn("狗二",newDateTime(1994,5,17),0).Dump();//95GetForturn("狗三",newDateTime(1996,11,3),0).Dump();//3但狗三经过1次“诚意金”后,也求得了高达99分以上的“上上签”:

GetForturn("狗二",newDateTime(1994,5,17),0).Dump();//98GetForturn("狗三",newDateTime(1996,11,3),).Dump();//99最后的话Rfc2898DeriveBytes非常有用,本文说了Rfc2898DeriveBytes的一种使用场景,相信各位在工作当时也经常会有机会去接触它。

THE END
1.算命程序编写一个算命程序,可以预测前世界cdsn算命程序 packagecom.homework; importjava.util.*; /* * 算心中的图形程序 */ publicclassH1{ publicstaticvoidmain(String[] args){ //in用于输入时 Scannerin=newScanner(System.in); intloop=1; //定义一个存放图像的数组 String[] picture =newString[10];https://blog.csdn.net/csdt_csdt/article/details/12831501
2.免费算命,生辰八字算命,周易占卜,姓名测试打分欢迎光临卜易居免费算命大全!本站是网上算命最准的网站,主要测算项目有生辰八字算命,姓名测试,在线算命,周易算命,在线抽签,姓名算命,起名网免费测名,在线算命,老黄历查询,周易占卜,八字算命婚姻,周公解梦,万年历,周易算卦,手机号码测吉凶,姓名配对,车牌号https://www.buyiju.com/
3.百度在线算命百度在线算命程序百度生成数字人生系统,人生预测系统,数字测试系统,八字算命系统,百度算命,百度数字人生算法,百度免费算命总站,百度生辰八字五行查询,百度自由算命系统,百度灵数算命,百度算命官网等,百度生辰八字算命是人间最准的程序,可以预测前世阴债、童子命、生辰八字阴阳五行中所带来http://cai.qmqm.net/am/a/a9.aspx
4.八字算命小程序开发,八字算命APP开发八字算命小程序开发,八字算命APP开发,八字算命软件系统,八字算命小程序开发多少钱,八字算命小程序怎么做,八字算命平台开发, 1。将年月日时排成命盘,每个时间概念称为一柱,共有四柱;每柱有天干地支两个字,共八个字,故称四柱八字排盘。 2。公历即是阳历,农历即是阴历。请按日期类型选择你的出生时间是阳历还是阴历http://52539691.b2b.11467.com/m/product/12717360.asp
5.免费算命:揭开你未来的神秘面纱(算一生的运势)在社交媒体平台和相关论坛上,也可以找到免费的算命服务。许多占卜师或算命爱好者会在这些平台上分享他们的预测和分析,或者组织免费的算命活动。虽然这种方式的可靠性和准确性可能不如专业网站和应用程序,但它为寻求命运指导的人们提供了一个社区互动的机会。 https://ffxlzx.com/welcome/artview35472
6.算命小先生算命小先生小程序二维码算命小先生微信小程序,算命小先生是一款1对1真人在线算命,为您提供感情运势、起名改名、八字合婚、生肖运情、财运、事业、取名、解梦、风水、学业等领域的咨询测算服务。已获得众多大师的认可并加入,目前已为大量用户提供了算命、起名、运势分析、解梦、择黄道吉日等服务,让众多求助者认识自我! http://shop.jisuapp.cn/program/13245.html
7.算命小程序开发,微信沟通小程序开发算命小程序开发,微信沟通 赴美上市获证监会核准 线上私享会干货满满 创新打造V客优享 软件和信息技术服务企业 赴美上市获证监会核准 线上私享会干货满满 创新打造V客优享 软件和信息技术服务企业 赴美上市获证监会核准 线上私享会干货满满 创新打造V客优享 https://m.epwk.com/task/1072186/
8.算命微信小程序JavaScript这款小程序运用人工智能算法,对用户输入的信息进行分析,为您提供个性化运势分析。它不仅能预测您的事业发展、感情走势,还能为您提供专属的转运建议。只需简单操作,您就可以了解到自己的命运走势,助您在人生道路上顺利前行。 关键词:算命、微信小程序、命运、人工智能、运势分析、命理学 https://blog.yyzq.team/post/359307.html
9.H5付费算命源码揭秘:神算网框架成行业基础,价格两万左右我在这个行业做周易算了好几年,从2017年到2020年,我突然发现,H5付费算命的一些源码程序在网络上流传甚广。到目前为止,h5付费算命的付费PHP源码,其实都是从程序的基本框架改编而来的。这个框架其实就是神算网,H5手机页面包含微信小程序,付费计算这个大框架其实就是神算网,只要你有神网的基本源码,基本上可以开发出很http://www.bjhwtx.com/h-nd-187501.html
10.微信算命免费免费送你最准的运势推广引流在一些网赚平台上发布任务,任务内容为推广微信算命小程序。网赚平台的用户通过完成任务获得报酬,而你则可以获得小程序的推广量。这种方法可以利用网赚平台的流量进行引流,引流效果一般。 上面介绍了几种微信算命免费引流的方法,大家可以根据自己的情况选择合适的方法进行引流。需要注意的是,引流只是一方面,小程序的质量和服https://www.cibaike.com/tuiguang/18665.html
11.星座运势算命小程序源码v1.2.0完整版下载地址完整前端+后端全86素材网给大家分享星座运势算命小程序源码v1.2.0完整版下载地址 完整前端+后端 全开源。 运势运程算命小程序开源源码最新更新日志: 新增测算栏目支付成功模版消息提醒,增加留存率。新增每日星座卡片、单向历,请求缓存解决请求慢问题。修复测算出生日期开始时间,从1979更改为1918 https://86sucai.cgtblog.com/32317.html
12.免费算命(2024已更新微信/小程序)免费算命(2024已更新_微信/小程序)- IOS最新版下载 坑爹囧囧囧官方介绍: 《坑爹囧囧囧》与《坑爹游戏》不同的是,这一次坑的不仅仅是您的智商,还考验您免费算命的各种精彩操作。超级玛丽式的玩法,上手难免费算命度几乎为零。 坑爹囧囧囧https://www.gfan.com/gftcp57118113.html
13.松原算命卜卦小程序开发(APP,小程序,平台搭建)找阿团工作室马可波罗网(makepolo.com)提供松原算命卜卦小程序开发 (APP,小程序,平台搭建)找阿团工作室,产品详情:所在地:福建、服务内容:软件开发,更多产品详情就上马可波罗网!http://china.makepolo.com/product-detail/101087105524.html
14.改命救世扭转乾坤免费算命自助版邵长文算命程序周易总站是全国最准的圣人改运总站,是当今知命救世最权威的算命总站,邵氏圣人真命救命灵魂活跃治魔真命堂,邵长文真命佛法救世天命文君改命中心,邵长文算命总站也称邵氏算命知命救世,天下最准的改命救世扭转乾坤香港改命堂http://www.zyqmzz.cn/
15.2016在线算命网站程序源码H1.0asp版源码下载2016在线算命网站程序是一款娱乐型的网站源码,功能有:各种算命啊,网上起卦排盘,周公解梦,手机号码查吉凶,QQ号码吉凶测试等,多个功能,查询结果仅供娱乐。 1、整站源码上传即可访问,无须安装,支持ASP的空间大小最少200M。 2、免费版,源码开源,可随意修改。 https://www.jb51.net/codes/408851.html
16.软件源码商会小程序源码学校订餐小程序源码h5打包小程序webview页面分享后打开分享页面url并显示页面title和简介的方法 现在做小程序的用户越来越多,有时候用户需要电脑端、手机端、小程序端、3端内容同步的时候,我们往往通过小程序的webview标签来直接把移动端打包小程序是最方便快捷的。但是在使用小程序一些小的组件时会遇到一些问题。今天就来说说H5页面通过https://www.diansutui.cn/