当前位置:首页 » 编程语言 » iosphp开发

iosphp开发

发布时间: 2025-03-24 10:22:50

javaphp、.net、交互设计、移动开发iOS这几个软件技术方向学哪个比较好

  1. java:一种跨平台的面向对象语言,语言库庞大,今后编程语言很可能会以java为基础进行演化,学好java需要的时间是很长的,入门倒没有多少门槛;

  2. php:服务器端脚本语言,与java几乎同时产生,但是它的语言就简单得多了,而且会发现它里面的很多语言是借鉴java的,比如反射。随着b/s模式的发展,这个语言的人才需求量比较大;

  3. .net:微软开发的平台,用来抗衡java平台,这个不多说,不是很懂。

  4. 交互设计:也不是很懂,听名字好像是偏向于美工、gui设计之类的,似乎对编程要求不是很高;

  5. 移动开发IOS:开发安卓需要精通java,当然不精通虽然也能写出来应用,但是终究会遇到瓶颈;ios开发需要学习object-c,也不是很懂,故不做评价。

Ⅱ iOS与php传递的josn数组解析

json_decode($ios,true);解析成数组
json_decode($ios);解析成对象

Ⅲ php加密文件 解密data 转nsstring 为nil. rc4 ios

IOS:引入ios自带库 #include

先以DES加密算法为例讲解,DES的加密和解密都同用一个Key,下面两个加解密函数如下:
//加密
-(NSString *) encryptUseDES:(NSString *)clearText key:(NSString *)key
{
//一般对加密的字符串采用UTF-8编码 NSData存储的就是二进制数据
NSData *data = [clearText dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
//See the doc: For block ciphers, the output size will always be less than or
//equal to the input size plus the size of one block.
//确定加密过后的字符串在内存中存放的大小,根据文档,对于块密码方式(这个库还包括流密码方式)
//加密过后的字符串大小总是小于或等于加密之前数据的大小加上对应加密算法的块大小
//但看到一些大牛还这样一下 & ~(kCCBlockSizeDES - 1) 目前不知道为嘛
size_t bufferSize = ([data length] + kCCBlockSizeDES) & ~(kCCBlockSizeDES - 1);
//void *buffer = malloc(bufferSize);//可以手动创建buffer,但之后要记得free掉
unsigned char buffer[bufferSize]; //定义输出加密串所占内存空间
memset(buffer, 0, sizeof(char)); //采用ios中宏定义好的方法分配空间,可免去手动free
size_t numBytesEncrypted = 0; //输出加密串的字节数

//加密数据,采用库中的CCCrypt方法,这个方法会按次序执行CCCrytorCreate(),
// CCCryptorUpdate(), CCCryptorFinal(), and CCCryptorRelease() 如果开发者自己create这个对象,
//那么后面就必须执行final、release之类的函数,CCCrypt方法一次性解决

// Byte iv[] = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};
//Byte iv[] = {1,2,3,4,5,6,7,8}; 加密所需的随机字符
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, //加密方式,kCCEncrypt加密 kCCDecrypt解密
kCCAlgorithmDES, //采用的加密算法,内置包含AES、DES、
//3DES、其他还有四个,不知道是什么
//后续讨论
//加密额外参数,注意此处各个平台之间指定的时候要记得一样
kCCOptionPKCS7Padding | kCCOptionECBMode,
[key UTF8String], //加密密匙 UTF8的字符串
kCCKeySizeDES, //密匙长度字节 各算法有对应的长度宏
nil, //随机字符,可指定也可不指定,各平台之间不绝对
[data bytes], //待加密串的字节长度
[data length], //待加密串的长度
buffer, //输出已加密串的内存地址
bufferSize, //已加密串的大小
&numBytesEncrypted);

NSString* plainText = nil;
if (cryptStatus == kCCSuccess) {
NSData *dataTemp = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
plainText = [GTMBase64 stringByEncodingData:dataTemp];
}else{
NSLog(@"DES加密失败");
}
return plainText;
}

//解密
-(NSString*) decryptUseDES:(NSString*)cipherText key:(NSString*)key {
// 利用 GTMBase64 解码 Base64 字串
NSData* cipherData = [GTMBase64 decodeString:cipherText];
size_t bufferSize = ([cipherData length] + kCCBlockSizeDES) & ~(kCCBlockSizeDES - 1);
//unsigned char buffer[1024];
unsigned char buffer[bufferSize];
memset(buffer, 0, sizeof(char));
size_t numBytesDecrypted = 0;

// IV 偏移量不需使用
CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt,
kCCAlgorithmDES,
kCCOptionPKCS7Padding | kCCOptionECBMode,
[key UTF8String],
kCCKeySizeDES,
nil,
[cipherData bytes],
[cipherData length],
buffer,
bufferSize,//1024,
&numBytesDecrypted);
NSString* plainText = nil;
if (cryptStatus == kCCSuccess) {
NSData* data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesDecrypted];
plainText = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
}
return plainText;
}

java和php平台的代码实现:

Java代码 收藏代码
import java.io.IOException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class DES {

private byte[] desKey;

public DES(String desKey) {
this.desKey = desKey.getBytes();
}

public byte[] desEncrypt(byte[] plainText) throws Exception {
SecureRandom sr = new SecureRandom();
byte rawKeyData[] = desKey;
DESKeySpec dks = new DESKeySpec(rawKeyData);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key, sr);
byte data[] = plainText;
byte encryptedData[] = cipher.doFinal(data);
return encryptedData;
}

public byte[] desDecrypt(byte[] encryptText) throws Exception {
SecureRandom sr = new SecureRandom();
byte rawKeyData[] = desKey;
DESKeySpec dks = new DESKeySpec(rawKeyData);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key, sr);
byte encryptedData[] = encryptText;
byte decryptedData[] = cipher.doFinal(encryptedData);
return decryptedData;
}

public String encrypt(String input) throws Exception {
return base64Encode(desEncrypt(input.getBytes()));
}

public String decrypt(String input) throws Exception {
byte[] result = base64Decode(input);
return new String(desDecrypt(result));
}

public static String base64Encode(byte[] s) {
if (s == null)
return null;
BASE64Encoder b = new sun.misc.BASE64Encoder();
return b.encode(s);
}

public static byte[] base64Decode(String s) throws IOException {
if (s == null)
return null;
BASE64Decoder decoder = new BASE64Decoder();
byte[] b = decoder.decodeBuffer(s);
return b;
}

public static void main(String[] args) throws Exception {
String key = "abcdefgh";
String input = "a";
DES crypt = new DES(key);
System.out.println("Encode:" + crypt.encrypt(input));
System.out.println("Decode:" + crypt.decrypt(crypt.encrypt(input)));
}
}

php 方法一
Php代码 收藏代码
<?php
class DES1 {
var $key;
function DES1($key) {
$this->key = $key;
}
function encrypt($input) {
$size = mcrypt_get_block_size('des', 'ecb');
$input = $this->pkcs5_pad($input, $size);
$key = $this->key;
$td = mcrypt_mole_open('des', '', 'ecb', '');
$iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
@mcrypt_generic_init($td, $key, $iv);
$data = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_mole_close($td);
$data = base64_encode($data);
return $data;
}
function decrypt($encrypted) {
$encrypted = base64_decode($encrypted);
$key =$this->key;
$td = mcrypt_mole_open('des','','ecb','');
//使用MCRYPT_DES算法,cbc模式
$iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
@mcrypt_generic_init($td, $key, $iv);
//初始处理
$decrypted = mdecrypt_generic($td, $encrypted);
//解密
mcrypt_generic_deinit($td);
//结束
mcrypt_mole_close($td);
$y=$this->pkcs5_unpad($decrypted);
return $y;
}
function pkcs5_pad ($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
function pkcs5_unpad($text) {
$pad = ord($text{strlen($text)-1});
if ($pad > strlen($text))
return false;
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad)
return false;
return substr($text, 0, -1 * $pad);
}
}
$key = "abcdefgh";
$input = "a";
$crypt = new DES1($key);
echo "Encode:".$crypt->encrypt($input)."<br/>";
echo "Decode:".$crypt->decrypt($crypt->encr

Ⅳ ios怎样搭建php服务器

一、准备

  • 一台安装了OS X操作系统的电脑(笔记本或一体机)

  • 电脑上安装了Xcode

  • 能连接到互联网——我们需要从网络上下载一些资源

  • 了解基本的PHP代码基础和Mysql执行语句

  • 二、基本步骤

  • 配置PHP Apache环境

  • 下载并安装MySql

  • 下载并使用phpMyAdmin

  • 三、详细操作

    1.配置PHP Apache环境

    Mac OS上自带PHP Apache环境,所以不需要另外下载安装包,只需要简单配置一下即可。

    (1)由于Apache目录是隐藏目录,如果系统目前不显示隐藏文件和文件夹,我们可以通过在Finder窗口下使用Command+Shift+G组合快捷键,或者在Finder状态下点击顶部状态栏的“前往——>前往文件夹”,在打开的对话框中输入

  • /etc/apache2

  • 进入apache2目录,然后使用文本编辑器打开名为“httpd.conf”的文件,如图1所示。

    图1

    (2)“httpd.conf”的文件中查询到如下代码:

  • #LoadMole php5_mole libexec/apache2/libphp5.so

  • 将该代码前面的#号删除,从而在Apache中启用PHP5模块。然后保存文件。

    在保存文件时,如果提示没有修改该文件的系统权限时,右键点击该文件,选择“显示简介”,然后点击最右下角的小锁图标,将Privilege修改为Read&Write即可。同时我们还需要修改apache2这个文件夹的权限。

    (3)接下来,打开“系统偏好设置”,选择“共享”选项卡,在打开的对话框中确保“互联网共享”未处于勾选状态(笔者的系统是10.12.3版本),如图2所示。

    图2

    (4)最后,在终端输入如下指令重启apache:

  • sudo apachectl restart

  • 此时,在浏览器输入

  • http://localhost/

  • 并回车,如果出现如图3所示的结果,说明PHP环境配置成功。

    图3

    2.下载并安装MySql

    (1)进入MySQL官网下载页面,在“Select Operating System:”下拉列表中选择Mac OS X之后,在给出的下载列表中选择DMG格式的文件进行下载。
    (2)下载完成后打开,可以看到如图4所示的文件。先点击安装文件"mysql-5.7.18-macos10.12-x86_64.dmg"。

    图4

    (3)安装完成后,MySQL会给出一个默认密码,保存一下这个密码,下面会用到。选择“系统偏好设置”,搜索到“MySQL”,点击打开,然后开启MsSQL,并勾选“开机自启动”选项,如图5所示。

    图5

    (4)打开终端,输入如下指令:

  • mysql -version

  • 若提示“-bash: mysql: command not found”,就需要先配置mysql bin目录的环境变量。

    首先,在Finder状态下,点击屏幕上方导航栏“前往——>前往文件夹”,在弹出来的对话框中输入“/etc/bashrc”,点击确定。

    然后,使用文本编辑打开“bashrc”文件(仍然别忘了修改这个文件的读写权限),在末尾加入如下代码:

  • #mysqlalias mysql='/usr/local/mysql/bin/mysql'alias mysqladmin='/usr/local/mysql/bin/mysqladmin'

  • 然后,我们要修改MySQL给出的默认密码。打开终端,输入如下指令并回车:

  • mysqladmin -u root -p password

  • 然后终端提示“Enter password:”在此输入刚才安装完MySQL之后分配的默认密码,然后回车,提示“New password:”,在此输入新的密码并回车,在“Confirm new password: ”后再次输入新密码并回车,则密码就重置完成了。
    (5)如果使用终端来进行MySQL操作,无疑是一件很痛苦的事情。所以一般我们使用phpMyAdmin来进行数据库的操作。前往phpAdmin下载页面根据自己的需要下载phpAdmin(我下载的是phpMyAdmin-4.7.0-all-languages.zip)。下载完成后,解压缩,并将解压缩之后的文件夹改名为phpMyadmin。然后将该文件夹复制到“/Library/WebServer/Documents/”目录下。
    (6)进入phpMyadmin文件夹,复制一个名为“config.sample.inc.php”的文件,粘贴到当前目录下,并改名为“config.inc.php”。
    (7)使用文本编辑器打开“config.inc.php”,将

  • $cfg['Servers'][$i]['host'] = 'localhost';

  • 修改为:

  • $cfg['Servers'][$i]['host'] = '127.0.0.1';

  • 保存后,在浏览器输入

  • http://localhost/phpmyadmin/

  •   进入phpAdmin登入界面,用户名输入为root,密码为在第(4)步设置的新密码。进入后能正常使用phpAdmin来操作MySQL。



    作者:三创iOS和PHP开发
    链接:https://www.jianshu.com/p/c3f53ed7e184
    来源:简书
    着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

热点内容
调试程序是指对程序进行编译吗 发布:2025-03-26 06:06:15 浏览:33
我的世界小游戏服务器ip地点 发布:2025-03-26 06:05:35 浏览:146
wow多玩数据库 发布:2025-03-26 06:05:34 浏览:746
c语言可视化编程 发布:2025-03-26 06:04:47 浏览:203
android作业 发布:2025-03-26 05:51:44 浏览:370
苹果微信怎么锁屏密码忘了怎么办啊 发布:2025-03-26 05:50:10 浏览:268
abaqus二次开发python 发布:2025-03-26 05:46:18 浏览:337
proe50编程 发布:2025-03-26 05:44:08 浏览:122
phpdatetime 发布:2025-03-26 05:43:33 浏览:948
oracle的linux客户端配置 发布:2025-03-26 05:36:38 浏览:201