创业日记-使用数学方法解决实际问题

今天是2015年4月24日 深圳阴

有十天没有写日志了。

这几天解决了一个之前困扰我久的问题

在实际的开发中一个问题解决与巧妙的解决有着很大的不同

实际的场景:

我们的用户会公开一个简历页面,这个页面会跟随用户的标识Id,是一个长整型的数字

这个规则很简单,如果有人恶意要去遍历这个数字Id,哪么所有的用户简历都可以轻松拿到,这不是我们希望看到的局面

哪么如何解决这个问题:

1.给用户这个id加密

2.给用户生成一个随机的字符串

3.给用户产生一个GUID

首选给Id加密是我们第一个想到的办法,一开始我们想到用 AES 加密

AEC 加密时需要一个加密Key,同时数字Id要转成String类型,

Key的长度最少为16位 byte

这样加密出来的数据会显得很长, 一大串的字符,而且加密Key要妥善保管,

看起来这样实现有一些复杂,我们想用一种更轻的方法

接下来我们考虑了第2种与第3种,这两种原理都是一样。在创建用户时产生一个随机的串

使用GUID可以保证不会重复,使用自己写的随机算法可能会重复。但实际也可以避免,

这样结果是数据库多了一个字段。同时也要为这个字段做一个索引,理论上字符串的索引速度是没有数字索引速度快

而且程序实体类里输入输出都要增加一个字段。

我们不希望把工作搞这么复杂

哪么我们还是希望能过算法支解决这些问题

看看我们的id 是这样的

1,2,3,4,5,6,7,8,9,10

我们只是不想让别人遍历,也可以说就算他能遍历要增加他们难度

我们想到了使用园的面积公式

S=πr²

把数字Id当成圆的半径

经过计算后我们的数字已经变成一个面积值

就如同上图的周边的气体一样

3.1415926 12.5663704 28.2743334 ....

这样的数字无法遍历,

这样的数学公式在实际的开发中能够很巧妙的解决问题。

今天就写到这里。谢谢!

时间: 2024-09-27 21:01:15

创业日记-使用数学方法解决实际问题的相关文章

Unity3D用初中数学方法解决第三人称视角变换

鉴于博主的数学只有初中水平(博主是初中生),又想实现第三人称的摄像机位置角度变换,所以博主搞了个最多用到初三四点共园基础知识的算法,还没实现..先写个思想看看 蛤蛤先上图 好了这就是全部算法的核心思想,我们下期再见 还有几个问题需要解决. 问题一:如果在视角变换中摄像机在地形内部怎么办? 这个很好办,如果摄像机不断与地形产生trigger函数,只要不断减少r就行了.当r过小被物体基本碰撞时,将摄像机置于物体上方.在公式中可以看出除了r其他参数是不变的. 问题二:我们考虑的屏幕是一维的,那如何处理

5000字创业日记:创业4个月,我到底做了哪些事情

创业满四个月 累.神经衰弱睡不好觉 需要处理的工作细节问题越来越多巨想有分身 产品遇到的瓶颈萦绕心头,每时每刻跟幻灯片儿似的一抬眼就是 想闭会眼睛一堆事等着解决,画了新的产品图恨不得明天就能做好回收用户反馈 5.1过节别人的状态是“耶,过节出去玩”,我的状态是“fuck,又耽误3天时间” 以上是一个没什么背景的.马上而立之年的,创业4个月,收入少,睡眠少,创业前景未知,鸡血用完了空血fighting的北京屌丝创业者的真实生活状态. 今天写这篇文章,算是对这几个月的历程做一个记录,一来为日后回忆起

数学方法

数学方法即用数学语言表述事物的状态.关系和过程,并加以推导.演算和分析,以形成对问题的解释.判断和预言的方法.所谓方法,是指人们为了达到某种目的而采取的手段.途径和行为方式中所包含的可操作的规则或模式.人们通过长期的实践,发现了许多运用数学思想的手段.门路或程序.同一手段.门路或程序被重复运用了多次,并且都达到了预期的目的,就成为数学方法.数学方法是以数学为工具进行科学研究的方法,即用数学语言表达事物的状态.关系和过程,经过推导.运算与分析,以形成解释.判断和预言的方法. 数学方法具有以下三个基

图像处理数学方法

图像处理数学方法 在图像处理的发展过程中,数学始终起着举足轻重的作用,并渗透在图像处理的所有分支之中. 到上世纪六七十年代为止,以Fourier分析为代表的线性处理方法占据了几乎整 个数字图像处理领域.在此期间,借助于随机过程理论,人们建立了图像模型通过概率论以及在此基础上建立的信息论建立了图像编码的框架:线性滤波(维纳滤 波.卡尔曼滤波)方法为低层图像处理提供了有力的理论支持:而FFT则被广泛使用在图像处理的几乎所有分支中.这些数学工具极大地促进了图像处理的发展和 应用. 自上世纪八十年代开始

zznu 1255 数字统计(数位DP, 数学方法)

最近在学数位DP, 感觉还是满有收获的! 做了几个题之后想起来自己OJ上曾经做的一道题,以前是用数学方法写的,现在改用数位DP来写了一遍. 题目: 1255: 数字统计 时间限制: 1 Sec  内存限制: 128 MB提交: 31  解决: 4[提交][状态] 题目描述 一本书的页码从自然数1 开始顺序编码直到自然数n.书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字0.例如,第6 页用数字6 表示,而不是06 或006 等.数 字计数问题要求对给定书的总页码n,计算出书的全部页码中

Laravel4快速安装方法,解决Laravel4安装速度慢

Laravel4原始安装方法 Laravel4 是构建在 Composer 之上的, 之前的安装方法是如下: composer create-project laravel/laravel your-project-name --prefer-dist 1 composer create-project laravel/laravel your-project-name --prefer-dist 然后再 composer install 1 composer install 十分钟过去了 ….

Maven构造版本号的方法解决浏览器缓存问题

需要解决的问题 在做WEB系统开发时,为了提高性能会利用浏览器的缓存功能,其实即使不显式的申明缓存,现代的浏览器都会对静态文件(js.css.图片之类)缓存.但也正因为这个问题导致一个问题,就是资源的缓存逻辑有时出现问题后服务器的最新版本文件无法更新客户端的缓存. 这个问题会给用户产生许多的困扰,当然首先是测试人员会很头痛,一些看起来没有修复的bug为什么开发要说做好了?这种时候我会无奈的说:ctrl+f5刷新一下.但这毕竟不是解决问题的方法. 思路与方法考虑 思路 之前没有着手处理过这样的问题

VS2013+openCV3.0无脑配置方法+解决警告问题【windows平台】

VS2013+openCV3.0无脑配置方法+解决警告问题[windows平台] 本文介绍如何配置VS+openCV环境,并解决“opencv 3.0 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符.请将该文件保存为 Unicode 格式以防止数据丢失的”警告 参考博客: http://my.phirobot.com/blog/2014-02-opencv_configuration_in_vs.html 下载 openCV 下载 Opencv for Windo

如何使用机器学习解决实际问题-以关键词相关性模型为例

本文以百度关键词搜索推荐工具字面相关性模型为基础,介绍一个机器学习任务的具体设计实现.包括目标的设定,训练数据准备,特征选择及筛选, 以及模型的训练及优化.该模型可扩展到语意相关性模型,搜索引擎相关性及LTR学习任务的设计实现.该模型的设计调研实现,也可以很容易移植解决其他包括语义相关性的问题 目标设定:提升关键词搜索相关性 作为一个搜索+推荐产品,百度关键词搜索推荐系统的产品形态是向凤巢用户推荐适合他业务的关键词.例如一个卖鲜花的广告主,他想在百度上做关键词搜索推广时,需要提交和他业务相关的关