杰者的备忘录

centos禁用证书登录改回账号密码登录

手上有一个GCE的虚拟机,默认是证书登录的,由于挂在路由上不能使用证书,于是需要改回root账号密码登录。


下面是方法,从谷歌云的网页面板找到实例,点那个SSH,进入一个网页版的SSH。


sudo -i


切换回root账号


然后

passwd

设置root的密码


然后vi /etc/ssh/sshd_config

...

成功解决宝塔面板Let's Encrypt免费证书时提示获取失败

我用的香港阿里云,安装了宝塔面板,想着启用Let's Encrypt免费证书,一直提示获取失败,看宝塔论坛说是dns有问题,换了dns还是不行。

仔细分析了一下,是马上点了马上提示失败的,根本没有访问网络的迹象,肯定不是dns的问题。那么就是本地安装的问题。于是尝试重新安装证书部分的内容。


下载脚本:

wget -O /www/server/panel/certbot-auto http://download.bt.cn/install/certbot-auto.init -T 5

...

Windows Server 2012 R2 或 2016 无法安装 .Net 3.5.1

 提示:找不到安装源文件。



解决办法:

从开始菜单中找到 PowerShell,右击选择 以管理员身份运行。
一行行的执行:


 Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name UseWUServer -Value 0

...

windows服务器中畸形文件删除方法

测试程序安全的时候上传了一个畸形文件,最后发现删不了,上了护卫神家的畸形文件清理工具都删不了,最后通过

 

创建一个bat批处理文件


DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1

 

直接把要删除的畸形文件拖动到这个批处理文件上就OK了。

...

discuz 3.3忘记管理员创始人密码找回

discuz 3.3忘记管理员创始人密码怎么办,因为原来那个tools工具已经不能用了,最简单的方法解决办法如下。 1、在/uc_server/data/下找到config.inc.php,打开找到下面2行代码:define('UC_FOUNDERPW', '3858cdf66b0794bfd435af8c0c3e8712');define('UC_FOUNDERSALT', '939786');2、创建新的ucpass.php文件...

Kesioncms(ASP)实现无限级导航菜单效果

一直以来使用kesioncms的时候,全站导航菜单我都是写死的(因为实在是不喜欢官方在后台提供的那个纯JS版顶部菜单,一来蜘蛛索引不了对SEO不好,二来看起来实在很蹩脚)今天刚好需要,自己撸了一个


查询语句

select id,foldername,tj from KS_Class where topflag=1 Order BY root,folderorder


循环体

...

IIS经常需要添加的MIME备份

 <system.webServer> <staticContent>  <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />  <mimeMap fileExtension=".woff" mimeType="application/x-font-woff&quo...

windows server 2016 的IIS10安装php manager和IIS URL Rewrite 2.0组件的方法

windows server 2016 出来了,第一时间在服务器上装上,然而原本支持组件有些无法安装了,win 2016是基于win 10来的,那么可以按照win 10的办法来。

php manager组件安装时提示“必须安装IIS7以上才可以安装”。那是不是真的就没法在新的IIS上安装了呢?显然不是的。自IIS7以来,微软的IIS更改并不大,架构一致,几乎所有IIS7能用的组件都能够在IIS7.7/8/8.5/10上安装。微软脑子秀逗,跳过了9,以为能解决版本识别的问题,没想到弄成10,还是出现了版本识别的问题,真是自己打自己的脸啊!
那么怎么办呢?改注册表!
打开regedit,找到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters
右侧的 MajorVersion 是DWORD值,它的值十进制是10,把它改成9。然后运行php manager安装程序即可顺利安装上了!记得装完之后改回来。
php manager的最新下载地址是:http://phpmanager.codeplex.com/releases/view/69115
而IIS URL Rewrite 2.0更是奇怪,简体中文版的这个组件无法安装,同样也是检测版本不正常,而英文版却能正常安装。
64位英文版下载地址是:http://go.microsoft.com/fwlink/?LinkID=615137
简体中文版下载地址是:http://download.microsoft.com/download/4/E/7/4E7ECE9A-DF55-4F90-A354-B497072BDE0A/rewrite_x64_zh-CN.msi

但是面对一堆英文,有些人肯定也会头疼了,那么简体中文版到底能不能装上。
也能!还是改注册表,我通过分析MSI发现它会检测
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp
也是 MajorVersion 项,这个也是 dword 值 10(注意是十进制),把它改成9,结果顺利安装上了!记得装完之后改回来。

...

ASP和PHP一致的base64类(UTF-8、可以自定义修改码表)

 因为项目关系,需要ASP跟PHP一致的base64类,gb2312的编码还好,到了utf-8就各种出错了,找了网上两个类来修改一下,测试可以用,并且修复了原来php那个类某些情况会乱码、无法在PHP5.2下运行的BUG

 

ASP版本:

<%
class Base64_cls
 private sBASE_64_CHARACTERS
 Private Sub Class_Initialize()
  sBASE_64_CHARACTERS = String2Bytes("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
 end sub
 function Encode(byval str)
  Encode=EncodeBytes(String2Bytes(str))
 end function
 function EncodeBytes(byval str)
  EncodeBytes=Bytes2String(Base64encode(str),"gb2312")
 end function
 function Decode(byval str)
  dim charset:charset = response.Charset
  if charset="" then charset = "utf-8"
  Decode=decodeAny(str,charset)
 end function
 function DecodeAny(byval str,byval charset)
  DecodeAny=Bytes2String(DecodeBytes(str),charset)
 end function
 function DecodeBytes(byval str)
  DecodeBytes=Base64decode(String2Bytes(str))
 end function
 Function Base64encode(asContents)
  Dim lnPosition
  Dim lsResult
  Dim Char1
  Dim Char2
  Dim Char3
  Dim Char4
  Dim Byte1
  Dim Byte2
  Dim Byte3
  Dim SaveBits1
  Dim SaveBits2
  Dim lsGroupBinary
  Dim lsGroup64
  Dim m4,len1,len2
  len1=Lenb(asContents)
  if len1<1 then
   Base64encode=""
   exit Function
  end if
  asContents = midb(asContents,1)
  m3=Len1 Mod 3
  If M3 > 0 Then asContents = asContents & String(3-M3, chrb(0))
  IF m3 > 0 THEN
   len1=len1+(3-m3)
   len2=len1-3
  else
   len2=len1
  end if
  lsResult = ""
  For lnPosition = 1 To len2 Step 3
   lsGroup64 = ""
   lsGroupBinary = Midb(asContents, lnPosition, 3)
   Byte1 = Ascb(Midb(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 And 3
   Byte2 = Ascb(Midb(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 And 15
   Byte3 = Ascb(Midb(lsGroupBinary, 3, 1))
   Char1 = Midb(sBASE_64_CHARACTERS, ((Byte1 And 252) \ 4) + 1, 1)
   Char2 = Midb(sBASE_64_CHARACTERS, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)
   Char3 = Midb(sBASE_64_CHARACTERS, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)
   Char4 = Midb(sBASE_64_CHARACTERS, (Byte3 And 63) + 1, 1)
   lsGroup64 = Char1 & Char2 & Char3 & Char4
   lsResult = lsResult & lsGroup64
  Next
  if M3 > 0 then
   lsGroup64 = ""
   lsGroupBinary = Midb(asContents, len2+1, 3)
   Byte1 = Ascb(Midb(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 And 3
   Byte2 = Ascb(Midb(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 And 15
   Byte3 = Ascb(Midb(lsGroupBinary, 3, 1))
   Char1 = Midb(sBASE_64_CHARACTERS, ((Byte1 And 252) \ 4) + 1, 1)
   Char2 = Midb(sBASE_64_CHARACTERS, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)
   Char3 = Midb(sBASE_64_CHARACTERS, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)
   if M3=1 then
    lsGroup64 = Char1 & Char2 & ChrB(61) & ChrB(61)
   else
    lsGroup64 = Char1 & Char2 & Char3 & ChrB(61)
   end if
   lsResult = lsResult & lsGroup64
  end if
  Base64encode = lsResult
 End Function
 Function Base64decode(asContents)
  Dim lsResult
  Dim lnPosition
  Dim lsGroup64, lsGroupBinary
  Dim Char1, Char2, Char3, Char4
  Dim Byte1, Byte2, Byte3
  Dim M4,len1,len2
  len1= Lenb(asContents)
  M4 = len1 Mod 4
  if len1 < 1 or M4 > 0 then
   Base64decode = ""
   exit Function
  end if
  if midb(asContents, len1, 1) = chrb(61) then m4=3
  if midb(asContents, len1-1, 1) = chrb(61) then m4=2
  if m4 = 0 then
   len2=len1
  else
   len2=len1-4
  end if
  For lnPosition = 1 To Len2 Step 4
   lsGroupBinary = ""
   lsGroup64 = Midb(asContents, lnPosition, 4)
   Char1 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 1, 1)) - 1
   Char2 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 2, 1)) - 1
   Char3 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 3, 1)) - 1
   Char4 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 4, 1)) - 1
   Byte1 = Chrb(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)
   Byte2 = lsGroupBinary & Chrb(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)
   Byte3 = Chrb((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))
   lsGroupBinary = Byte1 & Byte2 & Byte3
   lsResult = lsResult & lsGroupBinary
  Next
  if M4 > 0 then
   lsGroupBinary = ""
   lsGroup64 = Midb(asContents, len2+1, m4) & chrB(65)
   if M4=2 then
    lsGroup64 = lsGroup64 & chrB(65)
   end if
   Char1 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 1, 1)) - 1
   Char2 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 2, 1)) - 1
   Char3 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 3, 1)) - 1
   Char4 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 4, 1)) - 1
   Byte1 = Chrb(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)
   Byte2 = lsGroupBinary & Chrb(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)
   Byte3 = Chrb((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))
   if M4=2 then
    lsGroupBinary = Byte1
   elseif M4=3 then
    lsGroupBinary = Byte1 & Byte2
   end if
   lsResult = lsResult & lsGroupBinary
  end if
  Base64decode = lsResult
 End Function
 function String2Bytes(byval content)
  content = Server.URLEncode(content)
  content = replace(content,"+"," ")
  dim ret,i,c
  i=1
  do while i<=len(content)
   c = mid(content,i,1)
   if c="%" then
    ret = ret & chrb(cbyte("&H" & mid(content,i+1,2)))
    i=i+3
   else
    ret = ret & chrb(asc(c))
    i=i+1
   end if
  loop
  String2Bytes = ret
 end function
 public Function Bytes2String(ByVal byt,byval charset)
  If LenB(byt) = 0 Then
   Bytes2String = ""
   Exit Function
  End If
  Dim mystream, bstr
  Set mystream =Server.CreateObject("ADODB.Stream")
  mystream.Type = 2
  mystream.Mode = 3
  mystream.Open
  mystream.WriteText byt
  mystream.Position = 0
  mystream.CharSet = charset
  mystream.Position = 2
  bstr = mystream.ReadText()
  mystream.Close
  Set mystream = Nothing
  Bytes2String = bstr
 End Function
end class
dim str,str_e,str_d
str="Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。"
set base64 = new Base64_cls
str_e = base64.Encode(str)
response.write str_e&"
" str_d = base64.decode(str_e) response.write str_d set base64 = nothing %>

PHP版本:

...