手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表查看gouki的文章

Laravel 修改 Hash的默认driver 为Md5

写这一篇记录的时候,是因为在尝试用Nova做后台,因为是基于老的数据库,所以用户这一块在登录的时候判断密码是否正确就验证不通过了。默认laravel的hashing用的是bcrypt,而老数据库,大家都懂的,明显是md5,然后是不是加盐(salt),就看实际情况了。

对于Laravel来说,hasher的调整是在app/config/hashing.php里进行配置,但默认的是bcrypt。配置文件里直接就说了,【Supported: "bcrypt", "argon", "argon2id"】,那,MD5怎么办?

如果只是为了登录,那当然直接改Login方法就行了。如果不改Login方法,甚至想一行代码都不改,最好就是实现一个md5的驱动,同时让driver设置为md5即可。

网上的教程都是写一个Md5ServiceProvider,然后app->make('hash'),将它直接修改为Md5。这样带来的另一个问题,你反而不能直接用一些默认的方法了,比如Hash::make和Hash::check,因为整个hash都替换了。

正确的方法是,实现一个Md5的Hasher,然后,扩展一个方法出来,相当于实现了一个md5的driver,这时候再调整hashing中将driver设置为md5即可。此时,你再调用Hash::make,返回的就是md5后的结果,也支持参数(参数功能需要自己开发,比如 Hash::make('123',['salt'=>11]),即为md5加盐,也可以支持type ='suffix' 或者其他,甚至可以 double salt。so easy ~~~~)

---EOF

没有附上代码,因为实现MD5功能实在太简单了,关键的就是不要破坏性的增加或者替换功能,这才是重中之重。

历经千辛万苦,终于打开了远程桌面

 参考我上一篇文章。其实之前在网上找了很多教程和文章,但都没有打开成功。几乎所有的文章都试了。今天在测试本地的时候发现也不正常了。然后又找到网上的代码进行尝试。然而也都失败了。

搜索那个错误提示,反而是找到了官网的介绍:

1、https://support.apple.com/zh-cn/HT201710
2、https://support.apple.com/zh-cn/HT209161

然后才整理出了上一篇文章。打开两台电脑,一点点的在运行和查看【系统偏好设置】里的状态,确实【screen sharing】这个勾没有打上,打上的,反而是【remote managent】这个。然后就能远程了。这时候我再ssh 连上家里的mac mini,先执行关闭,再执行打开。。直接打开 vnc,用基于tailscale的局域网IP连接上了,然后退出,用vnc连接基于frp的端口,同样打开了。(要知道。。。。为了折腾这个,我已经整了半年多,其实之前都放弃了。)

真正是山重水复疑无路,柳暗花明又一村啊。

mac 开启远程桌面

 开启:

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart  -activate -configure -access -on -clientopts -setmenuextra -menuextra yes -privs -all -setvnclegacy -vnclegacy yes
 
关闭:
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -configure -access -off
 
但会提示:
Warning: macos 10.14 and later only allows control if Screen Sharing is enabled through System Preferences.
 
能不能成,还是要看运气!!!

老技巧:页面不允许被选择、被复制

 也不知道怎么分类,就放在js分类下了。

有时候,为了防止一小部分人喜欢手工CP,于是可以通过一些简单的办法让他们无法选择网页上的内容,也就变相的无法复制了。
偷懒的方法就是直接改CSS:
CSS代码
  1. * {  
  2.    /* moz-user-select: -moz-none; */  
  3.    -moz-user-select: none;  
  4.    -o-user-select: none;  
  5.    -khtml-user-select: none;  
  6.    -webkit-user-select: none;  
  7.    -ms-user-select: none;  
  8.    user-select: none;  
  9. }  
稍复杂一点。在body里加入:<body οncοntextmenu="return false;" onselectstart="return false">
嗯。用JS的话:
JavaScript代码
  1. document.οncοntextmenu=function(){return false;};   
  2. document.onselectstart=function(){return false;};  
简单粗暴,却能解决大部分的问题。但作为一个技术勃客,我还是不屑这么做,但确确实实有部分网站需要这样处理。但仍然是属于防君子不防小人


 

nodejs 使用 n 来切换版本

 在运行项目的时候,报错,说是不支持当前15.x的版本,请使用10,12,14的版本。于是yarn global add n,安装了这个简单的切换版本库。然后运行sudo n 14,自动安装了14.x的版本。

然而死活版本切换不过去。发现原来的node是在homebrew下安装的,于是选择卸载node,homebrew uninstall node,再运行sudo n 14,版本切换成功

n 和 nvm都是node下面多版本的管理工具。但n工具 确实比较简单:n +版本号,会自动下载指定版本。如果直接运行n,可以选择和切换当前的版本。当然这个是全局的,不能在指定的目录下指定node版本。如果临时用的时候,可以用n use 版本号来处理。

 

Records:291312345678910»